Δημοσιεύτηκε: 29 Ιουν 2011, 08:57
Ilias95 έγραψε:Ευχαριστώ για τις απαντήσεις.
@sv1jsb:
Μια παρατήρηση.
Το τελευταίο πρόγραμμα που έδωσες:Spoiler: show
Δεν δουλεύει ούτε σε python2 ούτε σε python3.
Δίνει έξοδο:
- Κώδικας: Επιλογή όλων
a
c
Traceback (most recent call last):
File "test.py", line 6, in <module>
print (lista[i])
IndexError: list index out of range
Εκτυπώνει όμως την πρώτη και την τρίτη τιμή τις λίστα πριν δώσει το σφάλμα.
Σωστά, δεν δουλεύει, ξέρεις γιατί;
Γιατί σβήνοντας ένα στοιχείο της λίστας αλλάζουμε το μέγεθος της και βρισκόμαστε μέσα σε for.
Έστω ότι είχε στην αρχή 4 στοιχεία, το range θα πάρει τιμές από 0 ως 3, εμείς σβήσαμε όμως ένα στοιχείο, άρα τώρα έχει μέγεθος 3 στοιχεία (από 0 ως 2).
Όταν θα πάει να ζητήσει το lista[3] αυτό δεν θα υπάρχει.
Γι' αυτό χρειάζεται προσοχή όταν σβήνεις στοιχεία, γενικώς. Συνήθως δεν χρειάζεται να σβήνεις μεταβλητές.
Η python έχει και garbage collection. Δηλαδή, αφαιρεί από την μνήμη μια μεταβλητή που δεν χρησιμοποιείται.