Δημοσιεύτηκε: 28 Ιουν 2011, 18:56
από Ilias95
Qdata έγραψε:[
Μα δεν διαγράφει πουθενά την λίστα.Το <kati> δεν είναι η λίστα <lista>.Άλλο το ένα άλλο το άλλο!Αν θέλεις να διαγράψεις την λίστα με όνομα <lista> ο κώδικας πρέπει να είναι έτσι:
Κώδικας: Επιλογή όλων
lista = ['a', 'b', 'c', 'd', 'e']
for kati in lista:
del lista
print(lista)


Φυσικά μετά το όρισμα lista δεν θα είναι δηλωμένο με αποτέλεσμα η συνάρτηση print() να μην το αναγνωρίζει και να πετάει το σφάλμα:
Κώδικας: Επιλογή όλων
Traceback (most recent call last):
File "arxeio.py", line 5, in <module>
del lista
NameError: name 'lista' is not defined


To kati αντιπροσωπεύει κάθε αντικείμενο της λίστας, και με τον βρόχο for εκτελώ τις παρακάτω εντολές για το κάθε αντικείμενο της λίστας.
Έτσι όπως έγραψα παραπάνω, το:
Κώδικας: Επιλογή όλων
for kati in lista:
print(kati)

Θα εκτελέσει την print για κάθε στοιχείο της λίστας 'lista'. Αυτό όμως δεν συμβαίνει με την del...
Δεν ζητάω την διαγραφή της λίστας, αλλά ζητάω σε κάθε επανάληψη του βρόχου να διαγράφεται το τρέχων στοιχείο της λίστας!
Δηλαδή και πάλι θα διαγραφεί όλη η λίστα, αλλά όχι με την ίδια διαδικασία...
Αυτό όμως δεν συμβαίνει. Γιατί;