- Η λίστα (list) είναι ένας τύπος ακολουθίας σαν τις πλειάδες, με τη διαφορά ότι είναι μεταβαλλόμενη, αφού επιτρέπει την προσθήκη και διαγραφή στοιχείων.
- Οι λίστες λειτουργούν παρόμοια με τις πλειάδες, και άρα ό,τι έχουμε μάθει για τις πλειάδες, ισχύει και για τις λίστες.
ΠΡΟΣΠΕΛΑΣΗ ΛΙΣΤΑΣ
- Για να αναφερθούμε σε ένα στοιχείο της λίστας, γράφουμε το όνομα της και τη θέση του στοιχείου στη λίστα εντός αγκυλών [ ].
Ο αριθμός εντός αγκυλών ονομάζεται δείκτης και ξεκινάει πάντα με 0 για το 1ο στοιχείο, 1 για το 2ο στοιχείο, 2 για το 3ο στοιχείο κοκ.
ΕΥΡΕΤΗΡΙΑΣΗ & ΤΕΜΑΧΙΣΜΟΣ
- Η ευρετηρίαση και ο τεμαχισμός μιας λίστας ακολουθεί παρόμοια μέθοδο με τις πλειάδες.
- Στην ευρετηρίαση γράφουμε τον αριθμό θέσης του στοιχείου μέσα σε [ ].
- Στον τεμαχισμό, προσδιορίζουμε τα δύο άκρα μιας φέτας μέσα σε [ ] έχοντας ως διαχωριστικό το σύμβολο :
- Όπως εκχωρούμε μια νέα τιμή σε ένα στοιχείο, μπορούμε να εκχωρήσουμε νέα τιμή και σε μία φέτα.
- Στο προηγούμενο παράδειγμα, η εντολή εκχώρησης colors[1:3] = ["grey"] αντικαθιστά τα στοιχεία colors[1] και colors[2] με την τιμή "grey".
- Ωστόσο, επειδή εκχωρούμε μία λίστα με ένα στοιχείο σε μία φέτα με δύο στοιχεία, αυτό έχει ως αποτέλεσμα τη μείωση του μήκους της λίστας.
- Η συνάρτηση len() λειτουργεί στις λίστες με τον ίδιο τρόπο που ξέρουμε από τις πλειάδες.
- Ο τελεστής in έχει παρόμοιο τρόπο λειτουργίας στις λίστες όπως και στις πλειάδες.
ΣΥΝΕΝΩΣΗ ΛΙΣΤΩΝ
- Η συνένωση λιστών γίνεται επίσης παρόμοια με τη συνένωση πλειάδων, με τη χρήση του τελεστή συνένωσης +.
ΔΙΑΓΡΑΦΗ ΣΤΟΙΧΕΙΩΝ
- Επιπλέον, για να διαγράψουμε ένα στοιχείο από μία λίστα, χρησιμοποιούμε την εντολή del. Με τη διαγραφή ενός στοιχείου δεν δημιουργείται κάποιο κενό στη λίστα.
- Το μήκος της λίστας συρρικνώνεται κατά ένα στοιχείο και όλα τα υπόλοιπα στοιχεία μετά το διαγραμμένο μετατοπίζονται προς τα κάτω μία θέση.
ΔΙΑΓΡΑΦΗ ΦΕΤΑΣ ΣΤΟΙΧΕΙΩΝ
- Επίσης μπορούμε να διαγράψουμε και μία φέτα από τη λίστα. Ο επόμενος κώδικας διαγράφει με την εντολή colors[:2] τα δύο πρώτα στοιχεία της λίστας.
- Όπως συμβαίνει και με τη διαγραφή ενός μόνο στοιχείου, το μήκος της λίστας μικραίνει κατά ένα και τα υπόλοιπα στοιχεία δημιουργούν την ανανεωμένη λίστα.
ΤΡΟΠΟΠΟΙΗΣΗ ΛΙΣΤΩΝ
- Μπορούμε να αλλάξουμε την τιμή κάθε στοιχείου μιας λίστας με άμεση ανάθεση τιμής σε αυτό.
- Μέσω της ευρετηρίασης, μπορούμε να εκχωρήσουμε μία τιμή σε ένα στοιχείο της λίστας αλλά δεν μπορούμε να δημιουργήσουμε νέο στοιχείο με αυτό τον τρόπο.
ΠΙΘΑΝΟ ΛΑΘΟΣ
- Κάθε προσπάθεια να εκχωρήσουμε μία τιμή σε ένα στοιχείο που δεν υπάρχει, οδηγεί σε λάθος.
ΠΕΡΙΕΧΟΜΕΝΑ ΛΙΣΤΩΝ
- Οι λίστες μπορούν να περιέχουν κάθε τύπο δεδομένων:
- αριθμούς
- strings
- συνδυασμό από αριθμούς και strings.
ΣΥΝΕΝΩΣΗ ΛΙΣΤΩΝ
- Με τη χρήση του τελεστή + μπορούμε να συνενώσουμε δύο επιμέρους λίστες.
Στο επόμενο παράδειγμα, συνενώνουμε δύο λίστες με ονόματα list1 και list2 με τον τελεστή + μέσα σε μία εντολή εξόδου print όπως και σε μία απλή εντολή εκχώρησης.
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΛΙΣΤΩΝ
- Μπορούμε να πολλαπλασιάσουμε μία λίστα με ένα ακέραιο αριθμό.
- Αυτό λέει στην Python να επαναλάβει τα περιεχόμενα της λίστας για ένα πλήθος φορών.
- Εάν όμως πολλαπλασιάσουμε τη λίστα με ένα μη ακέραιο αριθμό, προκαλούμε ένα συντακτικό λάθος.
ΠΙΘΑΝΟ ΛΑΘΟΣ 1
- Αφαιρέσεις και διαιρέσεις δεν είναι επιτρεπτές σε λίστες και παράγουν μόνο συντακτικά λάθη.
ΠΙΘΑΝΟ ΛΑΘΟΣ 2
- Αν προσθέσουμε σε μία λίστα κάτι που δεν είναι λίστα, προκαλούμε πάλι συντακτικό λάθος.
ΜΕΘΟΔΟΙ ΛΙΣΤΩΝ
- Οι λίστες έχουν μεθόδους για την επεξεργασία τους:
- append(value) - Προσθέτει μία τιμή στο τέλος της λίστας.
- sort() - Ταξινομεί τα στοιχεία σε αύξουσα σειρά. Για φθίνουσα σειρά, χρησιμοποιούμε την παράμετρο reverse με λογική τιμή True.
- reverse() - Αντιστρέφει τη σειρά των στοιχείων της λίστας.
- count(value) - Επιστρέφει τον αριθμό των εμφανίσεων της τιμής value.
- index(value) - Επιστρέφει τη θέση που πρωτοεμφανίζεται η τιμή value.
- insert(i,value) - Εισάγει την τιμή value στη θέση i.
- pop(i) - Επιστρέφει την τιμή της θέσης i διαγράφοντας την από τη λίστα. Χωρίς την τιμή i, το τελευταίο στοιχείο της λίστας διαγράφεται και επιστρέφει.
- remove(value) - Διαγράφει την πρώτη εμφάνιση της τιμής value από τη λίστα.
ΠΡΟΣΘΗΚΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΛΙΣΤΑ
- Για να προσθέσουμε ένα στοιχείο σε μία λίστα χρησιμοποιούμε τη μέθοδο append().
- Με το τρόπο αυτό η λίστα μεγαλώνει κατά ένα στοιχείο.
ΑΦΑΙΡΕΣΗ ΣΤΟΙΧΕΙΟΥ ΑΠΟ ΛΙΣΤΑ
- Με τη χρήση της μεθόδου remove() ο υπολογιστής διαγράφει την πρώτη εμφάνιση ενός στοιχείου που θέλουμε από τη λίστα.
- Η μέθοδος remove() διαφέρει από την εντολή del διότι δεν διαγράφει ένα στοιχείο βάσει της θέσης του, αλλά βάσει της τιμής του.
ΠΙΘΑΝΟ ΛΑΘΟΣ
- Εάν προσπαθήσουμε να διαγράψουμε μια τιμή που δεν υπάρχει στη λίστα, θα παράγουμε λάθος.
- Μια ασφαλέστερη μέθοδος διαγραφής είναι η επόμενη όπου το στοιχείο ελέγχεται αν υπάρχει στη λίστα πριν διαγραφεί.
- Ο έλεγχος γίνεται με τον τελεστή in.
ΤΑΞΙΝΟΜΗΣΗ ΣΤΟΙΧΕΙΩΝ ΛΙΣΤΑΣ
- Η συνάρτηση sort() ταξινομεί τα στοιχεία μιας λίστας. Ως προεπιλογή, η sort() ταξινομεί τα στοιχεία σε αύξουσα σειρά.
- Για αύξουσα σειρά, αρκεί να καλέσουμε τη μέθοδο χωρίς πέρασμα παραμέτρων.
- Για ταξινόμηση σε φθίνουσα σειρά, περνάμε την τιμή True στην παράμετρο reverse.
ΕΜΦΩΛΕΥΜΕΝΕΣ ΑΚΟΛΟΥΘΙΕΣ
- Οι λίστες και οι πλειάδες είναι ακολουθίες που μπορούν να περιέχουν ως στοιχεία τους άλλες λίστες ή πλειάδες.
- Στην περίπτωση αυτή, ονομάζονται εμφωλευμένες ακολουθίες.
Στο επόμενο παράδειγμα, δημιουργούμε μια λίστα με 3 στοιχεία. Το πρώτο είναι ένα string, το δεύτερο είναι μια πλειάδα με δύο στοιχεία και το τρίτο είναι μία λίστα με 3 στοιχεία
Στο παράδειγμα, βλέπουμε μια λίστα με τρία στοιχεία που καθένα από αυτά είναι μία πλειάδα με δύο στοιχεία, ένα string και ένα αριθμό.
Η προσπέλαση των στοιχείων μιας εμφωλευμένης ακολουθίας γίνεται όπως σε κάθε άλλη ακολουθία μέσω ευρετηρίασης.
Για να προσπελάσουμε ένα από τα στοιχεία μίας από της πλειάδες, υπάρχουν δύο τρόποι:
- Εκχωρούμε την πλειάδα που θέλουμε σε μία μεταβλητή και κατόπιν προσδιορίσουμε μέσω δείκτη τη θέση που θέλουμε.
- Χρησιμοποιούμε δύο δείκτες. Με τη χρήση πολλαπλών δεικτών μπορούμε να προσπελάσουμε άμεσα το στοιχείο που μας ενδιαφέρει.
UNPACKING
- Επίσης, μπορούμε να εκχωρήσουμε ένα στοιχείο της εμφωλευμένης ακολουθίας σε ξεχωριστές μεταβλητές στην ίδια γραμμή κώδικα.
- Αυτή η μέθοδος είναι γνωστή ως unpacking.
ΚΟΙΝΕΣ ΑΝΑΦΟΡΕΣ
- Όταν διαφορετικές μεταβλητές αναφέρονται στην ίδια λίστα, μοιράζονται μια κοινή αναφορά σε αυτή.
- Κάθε αλλαγή στην κοινή αυτή τιμή μέσω μίας εκ των μεταβλητών, αλλάζει την τιμή και των υπολοίπων.
- Πρέπει να είμαστε προσεκτικοί με τις κοινές αναφορές όταν χρησιμοποιούμε λίστες. Αν αλλάξουμε την τιμή μέσω μίας από τις μεταβλητές, η τιμή θα αλλάξει και για τις άλλες.
- Ωστόσο, μπορούμε να αποφύγουμε αυτό το πρόβλημα εάν εκχωρήσουμε την ίδια λίστα σε κάθε μία από τις μεταβλητές χωριστά.
Μακρής Ηλίας Π.Ε. Πληροφορικής