Η μέθοδος copy () επιστρέφει ένα ρηχό αντίγραφο της λίστας.
Μια λίστα μπορεί να αντιγραφεί χρησιμοποιώντας το =
χειριστή. Για παράδειγμα,
old_list = (1, 2, 3) new_list = old_list
Το πρόβλημα με την αντιγραφή λιστών με αυτόν τον τρόπο είναι ότι εάν τροποποιήσετε τη νέα λίστα, η παλιά_ λίστα τροποποιείται επίσης. Είναι επειδή η νέα λίστα αναφέρεται ή δείχνει στο ίδιο αντικείμενο old_list.
old_list = (1, 2, 3) new_list = old_list # add an element to list new_list.append('a') print('New List:', new_list) print('Old List:', old_list)
Παραγωγή
Παλιά λίστα: (1, 2, 3, 'a') Νέα λίστα: (1, 2, 3, 'a')
Ωστόσο, εάν χρειάζεστε την αρχική λίστα αμετάβλητη όταν τροποποιείται η νέα λίστα, μπορείτε να χρησιμοποιήσετε τη copy()
μέθοδο.
Σχετικό σεμινάριο: Python Shallow Copy Vs Deep Copy
Η σύνταξη της copy()
μεθόδου είναι:
new_list = list.copy ()
αντιγραφή παραμέτρων ()
Η copy()
μέθοδος δεν λαμβάνει παραμέτρους.
Επιστροφή τιμής από αντίγραφο ()
Η copy()
μέθοδος επιστρέφει μια νέα λίστα. Δεν τροποποιεί την αρχική λίστα.
Παράδειγμα 1: Αντιγραφή λίστας
# mixed list my_list = ('cat', 0, 6.7) # copying a list new_list = my_list.copy() print('Copied List:', new_list)
Παραγωγή
Αντιγραμμένη λίστα: ('cat', 0, 6.7)
Εάν τροποποιήσετε τη νέα λίστα στο παραπάνω παράδειγμα, η λίστα μου δεν θα τροποποιηθεί.
Παράδειγμα 2: Αντιγραφή λίστας με τη σύνταξη Slicing
# shallow copy using the slicing syntax # mixed list list = ('cat', 0, 6.7) # copying a list using slicing new_list = list(:) # Adding an element to the new list new_list.append('dog') # Printing new and old list print('Old List:', list) print('New List:', new_list)
Παραγωγή
Παλιά λίστα: ('cat', 0, 6.7) Νέα λίστα: ('cat', 0, 6.7, 'dog')