Τα tuples (ή πλειάδες) στην Python είναι μια δομή δεδομένων παρόμοια με τις λίστες, αλλά με την ιδιότητα ότι είναι αμετάβλητες. Αυτό σημαίνει ότι τα στοιχεία ενός tuple δεν μπορούν να τροποποιηθούν μετά τη δημιουργία τους. Όταν ένα tuple δημιουργηθεί, οι τιμές του παραμένουν σταθερές και δεν μπορούν να αλλάξουν.
Τα tuples χρησιμοποιούνται συχνά για την αναπαράσταση σταθερών συνόλων τιμών ή για την ομαδοποίηση στοιχείων που δεν πρέπει να αλλάξουν. Επειδή τα tuples είναι αμετάβλητα, μπορούν να χρησιμοποιηθούν ως κλειδιά σε λεξικά (dictionaries) ή ως στοιχεία μιας μετάθεσης (set), καθώς εξασφαλίζουν τη μοναδικότητα και τη σταθερότητα των τιμών.
Για τη δημιουργία ενός tuple, μπορείτε να χρησιμοποιήσετε παρενθέσεις ή τη συνάρτηση tuple()
. Παράδειγμα:
my_tuple = (1, 2, 3) # Δημιουργία tuple με παρενθέσεις another_tuple = tuple([4, 5, 6]) # Δημιουργία tuple με τη συνάρτηση tuple()
Τα tuples είναι αμετάβλητα, οπότε δεν μπορείτε να προσθέσετε, να αφαιρέσετε ή να τροποποιήσετε τα στοιχεία τους μετά τη δημιουργία τους. Ωστόσο, μπορείτε να προσπελάσετε τα στοιχεία του tuple χρησιμοποιώντας τον δείκτη τους, όπως και στις λίστες.
print(my_tuple[0]) # Εκτύπωση του πρώτου στοιχείου του tuple: 1
Μπορείτε να δημιουργήσετε ένα tuple χωρίς τη χρήση παρενθέσεων απλά διαχωρίζοντας τις τιμές με κόμματα. Αυτός ο τρόπος ονομάζεται “ανάθεση tuple” (tuple packing). Παράδειγμα:
my_tuple = 1, 2, 3 # Δημιουργία tuple χωρίς παρενθέσεις
Με τον τρόπο αυτό, οι τιμές θα ερμηνευτούν ως ένα tuple αυτόματα. Μπορείτε να προσπελάσετε τις τιμές χρησιμοποιώντας τους αντίστοιχους δείκτες, όπως και στις λίστες ή τα tuples που δημιουργούνται με παρενθέσεις.
print(my_tuple[0]) # Εκτύπωση του πρώτου στοιχείου του tuple: 1
Για να δημιουργήσετε ένα tuple με ένα μόνο στοιχείο, πρέπει να προσθέσετε ένα κόμμα μετά την τιμή του στοιχείου. Αυτό είναι αναγκαίο επειδή η Python διαφοροποιεί το tuple από ένα απλό αντικείμενο εάν υπάρχει κίνδυνος σύγχυσης.
Παράδειγμα:
my_tuple = (5,) # Ένα tuple με ένα μόνο στοιχείο
Εάν δεν προσθέσετε το κόμμα μετά την τιμή, η Python θα αντιληφθεί το στοιχείο ως απλή μεταβλητή, όχι ως tuple.
not_a_tuple = (5) # Μια απλή μεταβλητή, όχι ένα tuple
Είναι σημαντικό να προσθέσετε το κόμμα όταν δημιουργείτε ένα tuple με ένα μόνο στοιχείο, για να διατηρήσετε τη σωστή αναπαράσταση του tuple στην Python.
Μπορείτε να προσπελάσετε τα στοιχεία ενός tuple χρησιμοποιώντας τον αριθμό του ευρετηρίου τους, όπως κάνετε και με τις λίστες. Τα ευρετήρια ξεκινούν από το 0 για το πρώτο στοιχείο, 1 για το δεύτερο στοιχείο και ούτω καθεξής.
Παράδειγμα:
my_tuple = (1, 2, 3) print(my_tuple[0]) # Εκτύπωση του πρώτου στοιχείου του tuple: 1 print(my_tuple[1]) # Εκτύπωση του δεύτερου στοιχείου του tuple: 2 print(my_tuple[2]) # Εκτύπωση του τρίτου στοιχείου του tuple: 3
Μπορείτε επίσης να χρησιμοποιήσετε αρνητικά ευρετήρια για να προσπελάσετε τα στοιχεία από το τέλος του tuple προς την αρχή. Για παράδειγμα, -1
αναφέρεται στο τελευταίο στοιχείο, -2
αναφέρεται στο προτελευταίο στοιχείο και ούτω καθεξής.
print(my_tuple[-1]) # Εκτύπωση του τελευταίου στοιχείου του tuple: 3 print(my_tuple[-2]) # Εκτύπωση του προτελευταίου στοιχείου του tuple: 2 print(my_tuple[-3]) # Εκτύπωση του πρώτου στοιχείου του tuple: 1
[adinserter block=”2″]
Ωστόσο, είναι σημαντικό να γνωρίζετε ότι δεν μπορείτε να τροποποιήσετε τα στοιχεία ενός tuple μετά τη δημιουργία του. Αν προσπαθήσετε να τροποποιήσετε ένα στοιχείο ενός tuple, θα λάβετε ένα σφάλμα τύπου TypeError.
Παράδειγμα:
my_tuple = (1, 2, 3) my_tuple[0] = 4 # Αυτή η προσπάθεια θα προκαλέσει ένα σφάλμα TypeError
Αυτό συμβαίνει επειδή τα tuples είναι αμετάβλητα (immutable), οπότε οποιαδήποτε αλλαγή στοιχείου είναι μη επιτρεπτή. Αν χρειάζεστε μια δομή δεδομένων που να μπορεί να τροποποιηθεί, μπορείτε να χρησιμοποιήσετε μια λίστα (list) αντί για ένα tuple.
Όπως και στις λίστες, μπορείτε να χρησιμοποιήσετε το slicing για να προσπελάσετε εύρη ευρετηρίων σε ένα tuple. Το slicing σάς επιτρέπει να επιλέξετε ένα υποσύνολο των στοιχείων ενός tuple με βάση την θέση τους.
Για παράδειγμα, αν έχουμε ένα tuple με τα στοιχεία (1, 2, 3, 4, 5), μπορούμε να προσπελάσουμε ένα υποσύνολο του tuple χρησιμοποιώντας τη σύνταξη slicing:
my_tuple = (1, 2, 3, 4, 5) subset = my_tuple[1:4] # Προσπέλαση του υποσυνόλου (2, 3, 4)
Το slicing παίρνει δύο ορίσματα: την αρχική θέση και την τελική θέση του υποσυνόλου που θέλετε να επιλέξετε. Οι θέσεις αυτές αναφέρονται στα ευρετήρια των στοιχείων του tuple, με την πρώτη θέση να έχει ευρετήριο 0. Το slicing επιστρέφει ένα νέο tuple που περιλαμβάνει τα επιλεγμένα στοιχεία.
print(subset) # Εκτύπωση του υποσυνόλου: (2, 3, 4)
Με τη χρήση του slicing, μπορείτε να επιλέξετε μια συνεχόμενη ακολουθία στοιχείων από ένα tuple με βάση τις θέσεις τους.
Για να επαναλάβετε τα στοιχεία ενός tuple, μπορείτε να χρησιμοποιήσετε ένα for
loop. Κατά τη διάρκεια του loop, κάθε στοιχείο του tuple θα ανατεθεί στη μεταβλητή που ορίζετε, επιτρέποντάς σας να το χρησιμοποιήσετε εντός του loop.
Παράδειγμα:
my_tuple = (1, 2, 3) for item in my_tuple: print(item) # Εκτύπωση κάθε στοιχείου του tuple
Το παραπάνω παράδειγμα θα εκτυπώσει τα στοιχεία 1, 2 και 3, καθένα σε μια γραμμή. Μπορείτε να εκτελέσετε τις επιθυμητές ενέργειες για κάθε στοιχείο μέσα στο loop, όπως εμφάνιση, υπολογισμός, αποθήκευση σε μια άλλη δομή δεδομένων κλπ.
Για να βρείτε το μήκος ενός tuple στην Python, μπορείτε να χρησιμοποιήσετε την ενσωματωμένη συνάρτηση len()
. Η συνάρτηση len()
δέχεται έναν iterable (όπως ένα tuple) ως είσοδο και επιστρέφει τον αριθμό των στοιχείων που περιέχει.
Παράδειγμα:
my_tuple = (1, 2, 3, 4, 5) length = len(my_tuple) print(length) # Εκτύπωση του μήκους του tuple: 5
Η συνάρτηση len()
είναι χρήσιμη όταν θέλετε να γνωρίζετε πόσα στοιχεία περιέχει ένα tuple ή οποιοδήποτε άλλο iterable αντικείμενο στην Python.
[adinserter block=”3″]
Αν και τα tuples είναι αμετάβλητα, μπορείτε να συνδυάσετε δύο ή περισσότερα tuples για να δημιουργήσετε ένα νέο tuple. Αυτό γίνεται με τη χρήση του τελεστή “+” για τη συνένωση των tuples. Ο νέος tuple περιέχει όλα τα στοιχεία των αρχικών tuples, με τη σειρά που δόθηκαν.
Παράδειγμα:
tuple1 = (1, 2, 3) # Δημιουργία του πρώτου tuple με τις τιμές 1, 2, 3 tuple2 = (4, 5, 6) # Δημιουργία του δεύτερου tuple με τις τιμές 4, 5, 6 new_tuple = tuple1 + tuple2 # Συνένωση των δύο tuples για τη δημιουργία του νέου tuple print(new_tuple) # Εκτύπωση του νέου tuple: (1, 2, 3, 4, 5, 6)
Ο κώδικας παραπάνω δημιουργεί δύο tuples, tuple1
και tuple2
, με τις αντίστοιχες τιμές. Στη συνέχεια, χρησιμοποιείται ο τελεστής “+” για να συνδυαστούν τα δύο tuples και να δημιουργηθεί το new_tuple
. Τέλος, το new_tuple
εκτυπώνεται, παρέχοντας το αποτέλεσμα: (1, 2, 3, 4, 5, 6)
.
Συνοψίζοντας, τα tuples είναι μια αμετάβλητη δομή δεδομένων που χρησιμοποιείται για την αναπαράσταση σταθερών συνόλων τιμών ή ομαδοποιήσεων στοιχείων που δεν πρέπει να αλλάξουν. Κάποια από τα βασικά χαρακτηριστικά των tuples είναι:
- Αμεταβλητότητα: Τα στοιχεία ενός tuple δεν μπορούν να αλλάξουν μετά τη δημιουργία τους. Αυτό τα καθιστά κατάλληλα για την αποθήκευση σταθερών τιμών.
- Πρόσβαση με ευρετήριο: Μπορείτε να προσπελάσετε τα στοιχεία ενός tuple χρησιμοποιώντας τον αριθμό ευρετηρίου τους, ακριβώς όπως κάνετε με τις λίστες.
- Επανάληψη: Μπορείτε να επαναλάβετε τα στοιχεία ενός tuple χρησιμοποιώντας ένα for loop, επειδή τα στοιχεία του tuple είναι προσβάσιμα.
- Συνάρτηση len(): Μπορείτε να χρησιμοποιήσετε τη συνάρτηση len() για να βρείτε το μήκος ενός tuple, που αναφέρεται στον αριθμό των στοιχείων του.
- Συνένωση tuples: Μπορείτε να συνδυάσετε δύο ή περισσότερα tuples χρησιμοποιώντας τον τελεστή “+” για να δημιουργήσετε ένα νέο tuple που περιέχει όλα τα στοιχεία από τα αρχικά tuples.
Αυτά τα χαρακτηριστικά καθιστούν τα tuples χρήσιμα για περιπτώσεις όπου θέλουμε να αποθηκεύσουμε σταθερές τιμές ή ομαδοποιήσεις στοιχείων που δεν πρόκειται να αλλάξουν.