Δημοσιεύτηκε: 12 Αύγ 2009, 21:17
Όταν πρέπει να ...
Φτιάξτε καινούργια λίστα-αντίγραφο της λίστας lista. Όνομάστε την lista7.
νομίζω ότι το το σύμβολο ανάθεσης " = " δεν είναι αρκετό. Γιατί έτσι έχουμε δύο δείκτες (pointers) που δείχνουν στην ίδια θέση της μνήμης όπου υπάρχει ένα σύνολο δεδομένων, έτσι οποιαδήποτε αλλαγή στα δεδομένα επιρρεάζει και τη lista και την lista7. πχ
Οπότε το " = " είναι αρκετό μόνο αν θέλουμε οι δύο λίστες να έχουν πάντα τα ίδια δεδομένα. Αν θέλουμε μετά την δημιουργία της, η δεύτερη λίστα να ακολουθήσει ανεξάρτητη πορεία θα πρέπει να χρησιμοποιήσουμε τρόπο που θα δημιουργεί νέο σύνολο δεδομένων.
Αυτές δε οι διαφορές δεν είναι καθόλου λεπτομέρειες, από παρόμοιες διευθετήσεις προκύπτουν λάθη, που μπορεί να ταλαιπωρήσουν πολύ προγραμματιστές που εργάζονται σε μεγάλα προγράμματα.
Φτιάξτε καινούργια λίστα-αντίγραφο της λίστας lista. Όνομάστε την lista7.
νομίζω ότι το το σύμβολο ανάθεσης " = " δεν είναι αρκετό. Γιατί έτσι έχουμε δύο δείκτες (pointers) που δείχνουν στην ίδια θέση της μνήμης όπου υπάρχει ένα σύνολο δεδομένων, έτσι οποιαδήποτε αλλαγή στα δεδομένα επιρρεάζει και τη lista και την lista7. πχ
- Κώδικας: Επιλογή όλων
Python 3.0.1+ (r301:69556, Jun 23 2009, 20:25:15)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = [1,2,3]
>>> y = x
>>> x.append(4)
>>> y
[1, 2, 3, 4]
>>>
Οπότε το " = " είναι αρκετό μόνο αν θέλουμε οι δύο λίστες να έχουν πάντα τα ίδια δεδομένα. Αν θέλουμε μετά την δημιουργία της, η δεύτερη λίστα να ακολουθήσει ανεξάρτητη πορεία θα πρέπει να χρησιμοποιήσουμε τρόπο που θα δημιουργεί νέο σύνολο δεδομένων.
Αυτές δε οι διαφορές δεν είναι καθόλου λεπτομέρειες, από παρόμοιες διευθετήσεις προκύπτουν λάθη, που μπορεί να ταλαιπωρήσουν πολύ προγραμματιστές που εργάζονται σε μεγάλα προγράμματα.