Τα tuples στην Python είναι αμετάβλητα, δηλαδή μετά τη δημιουργία τους δεν μπορούν να τροποποιηθούν προσθέτοντας, αφαιρώντας ή αλλάζοντας στοιχεία.
Ωστόσο, μπορείτε να μετατρέψετε ένα tuple σε μια λίστα, να πραγματοποιήσετε τις απαιτούμενες αλλαγές στη λίστα και στη συνέχεια να μετατρέψετε τη λίστα πίσω σε ένα tuple. Αυτή η διαδικασία σάς επιτρέπει να προσθέσετε, να αφαιρέσετε ή να τροποποιήσετε τα στοιχεία ενός αντιγράφου του tuple χωρίς να αλλάξετε το αρχικό tuple.
Μπορούμε να χρησιμοποιήσουμε τη μεθοδολογία των tuples για να αλλάξουμε ένα συγκεκριμένο στοιχείο. Επειδή τα tuples είναι αμετάβλητα (immutable), δεν μπορούμε να αλλάξουμε άμεσα ένα στοιχείο τους, αλλά μπορούμε να δημιουργήσουμε ένα νέο tuple με τις αλλαγές που θέλουμε.
Παρακάτω παρουσιάζεται ένα παράδειγμα για την αντικατάσταση του τελευταίου μήνα “December” με το “Undecimber” σε ένα tuple με τους μήνες του έτους:
months = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") # Δημιουργία ενός νέου tuple με την αντικατάσταση του τελευταίου μήνα new_months = months[:-1] + ("Undecimber",) print(new_months)
Στον παραπάνω κώδικα, δημιουργούμε ένα νέο tuple new_months
που περιλαμβάνει όλους τους μήνες εκτός από τον τελευταίο μήνα του αρχικού tuple months
. Στη συνέχεια, προσθέτουμε τον νέο μήνα “Undecimber” στο τέλος του new_months
χρησιμοποιώντας τη σύνθεση months[:-1] + ("Undecimber",)
. Το [:-1]
αντιστοιχεί στην αποκοπή του αρχικού tuple για να πάρουμε όλα τα στοιχεία εκτός από τον τελευταίο μήνα. Το ("Undecimber",)
δημιουργεί ένα νέο tuple με τον μήνα “Undecimber” ως μοναδικό στοιχείο. Έτσι, το new_months
περιέχει τους μήνες του έτους με την αντικατάσταση του τελευταίου μήνα.
Το αποτέλεσμα εκτέλεσης του κώδικα θα είναι:
('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'Undecimber')
Έτσι, έχουμε δημιουργήσει ένα νέο tuple new_months
με την επιθυμητή αντικατάσταση του τελευταίου μήνα “December” με το “Undecimber”.
[adinserter block=”2″]
Ένας τρόπος για να προσθέσετε στοιχεία σε μια tuple είναι να τη μετατρέψετε προσωρινά σε μια λίστα, να προσθέσετε τα επιθυμητά στοιχεία και στη συνέχεια να την μετατρέψετε πίσω σε μια tuple. Ακολουθώντας αυτήν τη διαδικασία, μπορείτε να πετύχετε τον σκοπό σας, αν και πρέπει να λάβετε υπόψη ότι η tuple είναι αμετάβλητη και η μετατροπή της σε λίστα και πίσω σε tuple ενέχει κάποιον πρόσθετο χρόνο εκτέλεσης. Ένα παράδειγμα μετατροπής μιας tuple σε λίστα, προσθήκης στοιχείου και μετατροπής πίσω σε tuple είναι:
my_tuple = (1, 2, 3) my_list = list(my_tuple) # Μετατροπή της tuple σε λίστα my_list.append(4) # Προσθήκη στοιχείου στη λίστα my_tuple = tuple(my_list) # Μετατροπή της λίστας πίσω σε tuple
Με αυτήν τη διαδικασία, μπορείτε να προσθέσετε στοιχεία στην tuple, αλλά θα πρέπει να έχετε υπόψη ότι κάθε φορά που προσθέτετε ένα στοιχείο, γίνεται μια νέα αντιγραφή της tuple, καθώς η αρχική tuple είναι αμετάβλητη.
Αν θέλετε να προσθέσετε ένα ή περισσότερα στοιχεία σε μια υπάρχουσα πλειάδα (tuple), μπορείτε να δημιουργήσετε μια νέα πλειάδα με τα επιθυμητά στοιχεία και να την προσθέσετε στην υπάρχουσα πλειάδα. Αυτό γίνεται με τη χρήση του τελεστή “+”.
Παράδειγμα:
tuple1 = (1, 2, 3) tuple2 = ("apple", "banana") # Δημιουργία νέας πλειάδας με τα στοιχεία του tuple1 και του tuple2 new_tuple = tuple1 + tuple2 print(new_tuple) # Εκτυπώνει (1, 2, 3, "apple", "banana")
Στο παραπάνω παράδειγμα, δημιουργείται μια νέα πλειάδα new_tuple
η οποία περιέχει όλα τα στοιχεία του tuple1
ακολουθούμενα από όλα τα στοιχεία του tuple2
. Το αποτέλεσμα είναι η πλειάδα (1, 2, 3, "apple", "banana")
, η οποία περιέχει όλα τα αρχικά στοιχεία και τα νέα προσθετικά στοιχεία.
[adinserter block=”3″]
Μπορείτε να χρησιμοποιήσετε τη μέθοδο που περιγράφεται παρακάτω για να αφαιρέσετε ένα στοιχείο από ένα tuple και να δημιουργήσετε ένα νέο tuple με τα επιθυμητά στοιχεία:
my_tuple = (1, 2, 3, 4, 5) # Μετατροπή του tuple σε μια λίστα my_list = list(my_tuple) # Αφαίρεση του στοιχείου που θέλετε my_list.remove(3) # Μετατροπή της λίστας πίσω σε ενα tuple new_tuple = tuple(my_list) print(new_tuple) # Εκτύπωση της νέας tuple: (1, 2, 4, 5)
Στον παραπάνω κώδικα, δημιουργείται ένα tuple my_tuple
με τις τιμές 1, 2, 3, 4 και 5. Στη συνέχεια, η tuple μετατρέπεται σε μια λίστα my_list
χρησιμοποιώντας την ενσωματωμένη συνάρτηση list()
. Έπειτα, αφαιρείται το στοιχείο 3 από τη λίστα χρησιμοποιώντας τη μέθοδο remove()
. Τέλος, η λίστα μετατρέπεται πίσω σε μια tuple new_tuple
με τη χρήση της συνάρτησης tuple()
. Η new_tuple
περιέχει τα στοιχεία του αρχικού tuple χωρίς το αφαιρεθέν στοιχείο.
Μπορείτε να διαγράψετε μια πλειάδα (tuple) χρησιμοποιώντας τη λέξη-κλειδί del
. Αν έχετε μια πλειάδα με το όνομα my_tuple
, μπορείτε να τη διαγράψετε με την εντολή del my_tuple
. Όταν εκτελεστεί αυτή η εντολή, η πλειάδα θα διαγραφεί πλήρως από τη μνήμη του προγράμματος και δεν θα είναι πλέον προσβάσιμη.
Παρακάτω θα δείτε ένα παράδειγμα:
my_tuple = ("apple", "banana", "cherry") del my_tuple # Διαγράφει τη μεταβλητή my_tuple print(my_tuple) # Αυτό θα προκαλέσει ένα σφάλμα, καθώς η tuple έχει διαγραφεί
Στον παραπάνω κώδικα, αρχικά δημιουργούμε μια tuple με τα στοιχεία “apple”, “banana” και “cherry”. Έπειτα, με τη χρήση της ενσωματωμένης εντολής del
, διαγράφουμε τη μεταβλητή my_tuple
. Όταν προσπαθούμε να εκτυπώσουμε την my_tuple
μετά τη διαγραφή, προκαλείται ένα σφάλμα, καθώς η tuple έχει διαγραφεί και δεν υπάρχει πλέον στη μνήμη.