ΕΙΣΑΓΩΓΗ
Στο σημερινό δωρεάν μάθημα Python θα αναλύσουμε πως η Python ομαδοποιεί πολλαπλά στοιχεία, ποιες επιλογές υπάρχουν για να αποθηκεύσουμε αυτά τα δεδομένα και ποιες είναι οι διαφορές ανάμεσα τους. Η γενικότερη κατηγορία στην οποία ανήκει αυτή η θεωρία ονομάζεται data structures και στο σημερινό δωρεάν μάθημα Python θα μιλήσουμε συγκεκριμένα για το list.
ΟΡΙΣΜΟΣ ΤΟΥ LIST
Όπως οποιοδήποτε άλλο στοιχείο στην Python έτσι και ένα list είναι ένα αντικείμενο (για αυτό θα μιλήσουμε σε μελλοντική ενότητα) το οποίο μπορεί να περιέχει πολλαπλά στοιχεία δεδομένων τα οποία δεν είναι αναγκαίο να έχουν το ίδιο data type.
Ένα list είναι επίσης δυναμικό και μεταβλητή που σημαίνει ότι κατά
την διάρκεια εκτέλεσης ενός προγράμματος μπορούμε να προσθέσουμε ή να
αφαιρέσουμε στοιχεία από αυτό μεταβάλλοντας το μέγεθος του όπως και το
περιεχόμενο του. Αυτός είναι άλλωστε και ο λόγος που λέμε ότι τα list είναι
mutable δηλαδή επιτρέπουν αλλαγές στο
περιεχόμενο των στοιχείων τους. Σε άλλες γλώσσες προγραμματισμού θα συναντήσετε
την ίδια έννοια λειτουργίας με το όνομα array.
Για να ορίσουμε ένα list στην Python ακολουθούμε τα εξής εύκολα βήματα: μέσα σε square brackets ( [ ] ) δηλώνουμε τα στοιχεία (ή elements όπως επίσημα ονομάζονται) χωρισμένα με κόμμα. Ας δούμε ένα απλό παράδειγμα.
app.py
Output
['Arsenal', 'Chelsea', 'Everton', 'Liverpool', 'Watford']
Σε αυτό το παράδειγμα, η μεταβλητή teams ισούται με ένα list που αποτελείται από Strings και πιο συγκεκριμένα ονόματα ομάδων. Η λίστα μπορεί, μετά την δήλωση της, να μεγαλώσει ή να μικρύνει δυναμικά ανάλογα με τις ανάγκες τους προγράμματος μας.
Δεν θα ήθελα να συνεχίσω να συγκρίνω το list της Python με κάτι αντίστοιχο από άλλες γλώσσες προγραμματισμού γιατί πολύ απλά το list της Python είναι πολύ πιο ευέλικτο. Για παράδειγμα, ενώ σε άλλες γλώσσες προγραμματισμού δεν επιτρέπεται τα elements να διαφέρουν μεταξύ τους όσο αφορά το data type, η Python το καλωσορίζει.
app.py
Output
['Arsenal', 1, 'Chelsea', 2, 'Everton', 3, 'Liverpool', 4, 'Watford', 5]
ΠΩΣ ΔΙΑΒΑΖΟΥΜΕ ELEMENTS ΑΠΟ ΕΝΑ LIST
Τώρα που εξοικειωθήκαμε με την σύνταξη των lists, μπορούμε να προχωρήσουμε και στο επόμενο βήμα που είναι το πώς διαβάζουμε τα elements από ένα list.
Όπως και στα String,
έτσι και στα list, υπάρχει
ένας index αριθμός ο οποίος ξεκινάει το μέτρημα από τον αριθμό μηδέν. Όπως
μεγαλώνει το list μεγαλώνει ταυτόχρονα και το εύρος του index. Για να αποκτήσουμε πρόσβαση σε
οποιοδήποτε elements του list δεν έχουμε παρά να γράψουμε το όνομα του list και αμέσως
μετά μέσα σε square brackets
( [ ] ) τον αριθμό του index.
app.py
Output
Στην Python επιτρέπεται επίσης να μπορούμε να μετράμε από το τέλος του list προς την αρχή. Ο αριθμός -1 μας δίνει πρόσβαση στο τελευταίο element του list. Ο αριθμός -2 μας δίνει πρόσβαση στον προτελευταίο αριθμό του list κτλ.
app.py
Output
Ένα list μπορεί επίσης να περιέχει να περιέχει ή και περισσότερα list σαν elements. Για να αποκτήσουμε πρόσβαση στο element που είναι list απλά προσθέτουμε ένα ακόμα square bracket ( [ ] ) μετά το πρώτο. Το πρώτο bracket ορίζει το element στο list. Το δεύτερο index ορίζει στο συγκεκριμένο element (που είναι list) σε ποιο element θέλουμε να αποκτήσουμε πρόσβαση.
app.py
Output
Χρησιμοποιώντας το index μπορούμε επίσης να αλλάξουμε την τιμή που υπάρχει στο συγκεκριμένο element.
app.py
Output
['Tottenham', ['Chelsea', 'Everton'], 'Liverpool', 'Watford']
ΤΙ ΑΚΡΙΒΩΣ ΕΙΝΑΙ ΤΟ LIST SLICING?
Όπως έχετε ήδη καταλάβει, η Python είναι αρκετά ευέλικτη γλώσσα προγραμματισμού και με πλούσια βιβλιοθήκη από λειτουργίες όσο αφορά τα list. Μια από αυτές τις λειτουργίες είναι η δυνατότητα να διαβάσουμε μια ομάδα από elements ταυτόχρονα αντί να ορίζουμε κάθε ένα index ξεχωριστά.
Ο απλός τρόπος για να διαβάσουμε μια ομάδα από elements ενός list είναι: list[index1:index2]. Ο πρώτος αριθμός index1 δηλώνει το index από το οποίο θα αρχίζουμε να διαβάζουμε τα elements του list ενώ το index2 δηλώνει σε ποιο index θα σταματήσουμε χωρίς όμως να περιλαμβάνει αυτό τον αριθμό. Οι δύο δηλώσεις των index χωρίζονται από ένα colon ( : ).
app.py
Output
['Chelsea', 'Aston Villa', 'Newcastle']
Μπορούμε επίσης να χρησιμοποιήσουμε μόνο ένα από τα δύο indexes. Αφήνοντας το index1 και αφαιρώντας το index2 σημαίνει ότι θα διαβάσουμε το list ξεκινώντας από το index1 μέχρι το τέλος της λίστας. Αντίστοιχα, αν κρατήσουμε μόνο το index2 σημαίνει ότι επιθυμούμε να διαβάσουμε από την αρχή του list μέχρι το σημείο που ορίζει το index2.
app.py
Output
Υπάρχει μια ακόμα τρίτη μεταβλητή που μπορούμε να προσθέσουμε όταν κάνουμε slicing και ονομάζεται step. Με το step δηλώνουμε τις τιμές που δεν θα περιλάβουμε στο τελικό αποτέλεσμα. Αν για παράδειγμα ορίσουμε σαν step τον αριθμό 2 τότε δηλώνουμε ότι θα διαβάσουμε κάθε δύο elements από το εύρος του slicing που έχουμε ορίσει.
app.py
Output
['Chelsea', 'Newcastle']
ΜΠΟΡΟΥΜΕ ΝΑ
ΑΝΤΙΓΡΑΨΟΥΜΕ ΕΝΑ LIST?
Φυσικά και μπορούμε να αντιγράψουμε ένα list αλλά πρέπει να δώσουμε λίγο προσοχή στη θεωρία. Ο λάθος τρόπος να αντιγράψετε ένα list είναι να γράψετε list1 = list2. Με αυτό τον τρόπο απλά έχετε δημιουργήσει δύο ονόματα μεταβλητών που αναφέρονται στο ίδιο ακριβώς σημείο της μνήμης στο οποίο βρίσκονται τα δεδομένα. Το αποτέλεσμα είναι ότι αν διαγράψετε ένα element από το list1 τότε επηρεάζεται και το list2.
app.py
Output
Οπότε αν αυτός δεν είναι ακριβώς αυτό που ζητούσαμε ποιος είναι ο καλύτερος τρόπος να αντιγράψουμε ένα list? Η απάντηση είναι απλή: η χρήση του slicing που ήδη έχουμε μάθει. Αυτό που κάνουμε είναι να γράψουμε δύο colon ( :: ) χωρίς να δηλώσουμε κανέναν αριθμό. Το αποτέλεσμα είναι να αντιγράψουμε όλα τα elements από την αρχή μέχρι το τέλος σε ένα καινούργιο list.
app.py
Output
Υπάρχουν ακόμα πολλές δυνατότητες που μπορούμε να εκτελέσουμε με τα list τις οποίες θα καλύψουμε στην επόμενη ενότητα.
Μην ξεχάσετε να κάνετε ένα μικρό donationέτσι ώστε αυτό το siteνα μεγαλώσει
ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες onlineπαράδοσης δωρεάν
μαθημάτων.
full-width
0 Comments
Η γνώμη σας είναι σημαντική.