15. Πλειάδες

Οι πλειάδες (tuples) είναι μια δομή δεδομένων σε μορφή όπως οι λίστες, αλλά με το χαρακτηριστικό ότι μένουν αμετάβλητες κατά την εκτέλεση κώδικα Python. Αν κατά την εκτέλεση κώδικα προσπαθήσουμε να τροποποιήσουμε μια πλειάδα, θα πάρουμε ένα μήνυμα σφάλματος.

Μια πλειάδα μπορεί να οριστεί σαν μια ακολουθία τιμών χωρισμένων με κόμμα, οι οποίες περικλείονται σε παρενθέσεις ή αν θέλουμε και χωρίς αυτές.

>>> colors = 'Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο'
>>> print(colors)
('Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο')
>>> tp = (10, 11, 12, 13, 14)
>>> print(tp)
(10, 11, 12, 13, 14)

Μπορούμε να ορίσουμε μια άδεια πλειάδα με ένα ζευγάρι άδειων παρενθέσεων. Επίσης μπορούμε να ορίσουμε μια πλειάδα η οποία να έχει ένα στοιχείο, τοποθετώντας ένα κόμμα μετά το στοιχείο και έτσι για να μπορέσει η Python να το ξεχωρίσει από την δομή της συμβολοσειράς.

>>> tp1 = ()
>>> print(tp1)
()
>>> tp2 = ('A',)
>>> print(tp2)
('A',)
>>> t = ('A')
>>> print(t)
A

Μπορούμε να μετατρέψουμε μια πλειάδα σε λίστα με την συνάρτηση list. Με ανάλογο τρόπο μπορούμε να μετατρέψουμε μια λίστα σε πλειάδα με την συνάρτηση tuple:

>>> tp1 = 1, 2, 3, 4, 5
>>> lst1 = list(tp1)
>>> print(lst1)
[1, 2, 3, 4, 5]
>>> lst2 = [20, 25, 30, 35]
>>> tp2 = tuple(lst2)
>>> print(tp2)
(20, 25, 30, 35)

Αν θέσουμε ως όρισμα της συνάρτησης tuple μια συμβολοσειρά, αυτή δίνει μια πλειάδα με στοιχεία τους χαρακτήρες της συμβολοσειράς:

>>> tp = tuple('University')
>>> print(tp)
('U', 'n', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y')

Μπορούμε να πάρουμε ένα στοιχείο μιας πλειάδας χρησιμοποιώντας την σύνταξη του ονόματος της πλειάδας μαζί με τον αντίστοιχο δείκτη. Μπορούμε να χρησιμοποιήσουμε τον τελεστή διαμέρισης για να επιλέξουμε ένα διάστημα στοιχείων μιας πλειάδας.

>>> colors = 'Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο', 'Μπλε', 'Μωβ'
>>> print(colors[1])
Κίτρινο
>>> print(colors[2:4])
('Κόκκινο', 'Ασπρο')
>>> print(colors[3:])
('Ασπρο', 'Μπλε', 'Μωβ')
>>> print(colors[-2])
Μπλε

Μπορούμε να χρησιμοποιήσουμε τον λογικό τελεστή in για να δούμε εάν μια τιμή ανήκει σε μια πλειάδα.

>>> tp = 'Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο'
>>> print('Μωβ' in tp)
False
>>> print('Μαύρο' in tp)
True

Μπορούμε να συνενόσουμε πλειάδες με τον τελεστή + καθώς επίσης και να πολλαπλασιάσουμε τα στοιχεία μιας πλειάδας με τον τελεστή *

>>> tp1 = ('Πρόβατο', 'Αγελάδα')
>>> tp2 = ('Μαύρο', 'Κόκκινο', 'Ασπρο')
>>> ta = tp1 + tp2
>>> print(ta)
('Πρόβατο', 'Αγελάδα', 'Μαύρο', 'Κόκκινο', 'Ασπρο')
>>> tb = tp1 * 3
>>> print(tb)
('Πρόβατο', 'Αγελάδα', 'Πρόβατο', 'Αγελάδα', 'Πρόβατο', 'Αγελάδα')

Μπορούμε να χρησιμοποιήσουμε τις μεθόδους count() και index() πάνω σε πλειάδα. Η μέθοδος count()  δίνει το πλήθος των εμφανίσεων μιας τιμής μέσα σε μια πλειάδα. Η μέθοδος index() δίνει τον πρώτο δείκτη στον οποίο αντιστοιχεί μια τιμή.

>>> colors = 'Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο', 'Κίτρινο'
>>> x1 = colors.count('Κίτρινο')
>>> print(x1)
2
>>> x2 = colors.index('Κίτρινο')
>>> print(x2)
1

Για να διατρέξουμε μια πλειάδα χρησιμοποιούμε την ακόλουθη μορφή κώδικα:

>>> colors = 'Μαύρο', 'Κίτρινο', 'Κόκκινο', 'Ασπρο', 'Κίτρινο'
>>> for f in colors:
          print(f)
Μαύρο
Κίτρινο
Κόκκινο
Ασπρο
Κίτρινο

Εναλλακτικά μπορούμε να χρησιμοποιήσουμε το ακόλουθο απόσπασμα κώδικα:

>>> i = 0
>>> while i < len(colors):
             print(colors[i])
             i = i+1