Μάθημα 2 - Ασκήσεις

...ασύγχρονα μαθήματα python

Re: Μάθημα 2 - Ασκήσεις

Δημοσίευσηαπό kofan » 30 Μαρ 2010, 01:22

Εχώ μια απορία πάνω στην άσκηση 11.β

Λοιπόν δίνοντας
Κώδικας: Επιλογή όλων
lista11[0:1] = ['πατάτες', lista11[0]]
print (lista11)

παίρνω
Κώδικας: Επιλογή όλων
['πατάτες', 'μήλα', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'ντοματές', 'κιτρόμηλα']


Δίνοντας
Κώδικας: Επιλογή όλων
lista11[0] = ['πατάτες', lista11[0]]

παίρνω
Κώδικας: Επιλογή όλων
[['πατάτες', 'μήλα'], 'αχλάδια', 'αγγούρια', 'μπανάνες', 'ντοματές', 'κιτρόμηλα']


Από ό,τι έχω καταλάβει με το lista[x:y] είναι σα να δηλώνουμε ένα διάστημα μέσα στη λίστα. Όμως το [0] δεν είναι ίδιο ουσιαστικά με το [0:1] αν εξαιρέσουμε το γεγονός ότι το δεύτερο δηλώνει διάστημα(μεταξύ του 0 και 1 δεν υπάρχουν άλλοι ακέραιοι όμως); Αρά γιατί στο lista11[0] δημιουργεί υπολίστα;
Τα φώτα σας σε έναν νέο στο χώρο :)...

Edit:
Μια σκέψη μου είναι πως επειδή με το [x:y] δηλώνουμε ακολουθία (η οποία δεν αποτελείται απαραίτητα όπως στην περίπτωση μου από ένα αντικείμενο) λαμβάνει τα x'('πατάτες') και y'(lista11[0]) ως αντικείμενα της ακολουθίας και όχι ώς ένα αντικείμενο(λίστα) όπως αν είχαμε [χ].

Ελπίζω να γίνομαι κατανοητός. Δε ξέρω να χρησιμοποιώ σωστά και τους όρους(αντικείμενο, ακολουθία κ.λπ.) και ίσως μπερδεύω έτσι...
Multi Boot: Ubuntu 11.10 - Mint 12 - Windows 7 - Fedora 16
Linux: Χαμηλό ~ Προγραμματισμός: Λίγα πράγματα και εδώ ~ Αγγλικά: Καλά
kofan
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 30 Αύγ 2009, 20:23
Εκτύπωση

Re: Μάθημα 2 - Ασκήσεις

Δημοσίευσηαπό sokoban4ever » 03 Απρ 2010, 14:14

@kofan
όταν κάνεις ανάθεση (=)σε μια λίστα
πχ lista[0] = αντικείμενοΑΒΓ
τότε αντικαθίσταται μόνο το πρώτο στοιχείο της λίστας -που μπορεί να είναι οποιοδήποτε αντικείμενο- με το αντικείμενοΑΒΓ

'Οταν κάνεις lista[0:1] = αντικείμενοΑΒΓ πρέπει το αντικείμενο να είναι iterable
δηλαδή πχ ένα string, μια λιστα , ένα set κλπ ...
πχ

Κώδικας: Επιλογή όλων
>>> a = [1, 2, 3, 4]
>>> a
[1, 2, 3, 4]
>>> a[0:0] =11
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only assign an iterable
>>> a[0:0] = 1.7444
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only assign an iterable
>>> a[0:0] = (-3,-2,-1,0)
>>> a
[-3, -2, -1, 0, 1, 2, 3, 4]
>>>

τέλος δες τι συμβαίνει και με την ανάθεση όταν έχεις ":" slices

Κώδικας: Επιλογή όλων
>>> a=[1,2,3,4]
>>> a[0:1]='test'
>>> a
['t', 'e', 's', 't', 2, 3, 4]
>>> a=[1,2,3,4]
>>> a[0:4]='test'
>>> a
['t', 'e', 's', 't']
>>> a=[1,2,3,4]
>>> a[0:0]='test'
>>> a
['t', 'e', 's', 't', 1, 2, 3, 4]
>>> a=[1,2,3,4]
>>> a[0:1]='test'
>>> a
['t', 'e', 's', 't', 2, 3, 4]
>>> a=[1,2,3,4]
>>> a[0:2]='test'
>>> a
['t', 'e', 's', 't', 3, 4]
>>> a=[1,2,3,4]
>>> a[0:3]='test'
>>> a
['t', 'e', 's', 't', 4]
>>> a=[1,2,3,4]
>>> a[0:4]='test'
>>> a
['t', 'e', 's', 't']
>>> a=[1,2,3,4]
>>> a[0:5]='test'
>>> a
['t', 'e', 's', 't']

ουσιαστικά προσθέτει τα αντικείμενα στην αρχή της λίστας (δες το a[0:0]='test' )
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Μάθημα 2 - Ασκήσεις

Δημοσίευσηαπό kofan » 06 Απρ 2010, 15:58

@sokoban4ever

Οκ το κατάλαβα ευχαριστώ πολύ!
Multi Boot: Ubuntu 11.10 - Mint 12 - Windows 7 - Fedora 16
Linux: Χαμηλό ~ Προγραμματισμός: Λίγα πράγματα και εδώ ~ Αγγλικά: Καλά
kofan
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 30 Αύγ 2009, 20:23
Εκτύπωση

Προηγούμενη

Επιστροφή στο Μαθήματα python

cron