INTRODUCTION
Στο σημερινό δωρεάν μάθημα Python, θα δούμε στην πράξη τις πιο χρήσιμες ενσωματωμένες μεθόδους (built-in methods) των λιστών. Θα μάθουμε πώς αυτά τα εργαλεία μάς επιτρέπουν να τροποποιούμε και να διαχειριζόμαστε απευθείας τα δεδομένα που περιέχει μια λίστα.
Συνθήκες (Conditionals) και Λίστες
Πριν προχωρήσουμε στις μεθόδους των λιστών και δούμε πώς αυτές μεταβάλλουν τα δεδομένα, ας κάνουμε μια χρήσιμη στάση. Θα δούμε πώς μπορούμε να χρησιμοποιήσουμε έναν βρόχο for (for loop) για να προσπελάσουμε τα στοιχεία μιας λίστας—είτε όλα μαζί, είτε μόνο όσα πληρούν μια συγκεκριμένη συνθήκη. Άλλωστε, η λογική του for loop μάς είναι ήδη αρκετά γνώριμη από προηγούμενο μάθημα!
app.py
Output
Δημιουργούμε, λοιπόν, μια προσωρινή μεταβλητή μέσα στο for loop με το όνομα team. Σε κάθε "κύκλο" της επανάληψης, αυτή η μεταβλητή θα παίρνει διαδοχικά την τιμή κάθε στοιχείου της λίστας teams. Στο συγκεκριμένο παράδειγμα, η ενέργεια που θέλουμε να κάνουμε είναι απλή: να τυπώσουμε την εκάστοτε τιμή της μεταβλητής team. Προσοχή στη σύνταξη: αμέσως μετά τη λέξη in, δηλώνουμε τη λίστα από την οποία θα αντλήσει τα δεδομένα της η μεταβλητή μας.
Μπορούμε, επίσης, να συνδυάσουμε τις λίστες με δομές ελέγχου if. Έτσι, όχι μόνο ελέγχουμε τα δεδομένα που διαβάζουμε, αλλά μπορούμε να εμφανίσουμε και τα αντίστοιχα προσαρμοσμένα μηνύματα στο τερματικό (terminal). Στο παράδειγμα που ακολουθεί, θα δούμε δύο πολύ πρακτικά εργαλεία: χρησιμοποιούμε τον τελεστή in για να ελέγξουμε αν μια συγκεκριμένη τιμή υπάρχει ήδη μέσα στη λίστα, και το not in για να βεβαιωθούμε ότι μια τιμή δεν υπάρχει σε αυτήν.
app.py
Output
Συχνά στον προγραμματισμό χρειάζεται να ελέγξουμε αν μια λίστα είναι εντελώς άδεια. Σκεφτείτε, για παράδειγμα, το ψηφιακό καλάθι αγορών ενός e-shop πριν προσθέσει κάτι ο πελάτης. Στην Python, ο πιο απλός και σωστός τρόπος για να διαπιστώσουμε αν μια λίστα δεν περιέχει καθόλου δεδομένα φαίνεται στον παρακάτω κώδικα:
app.py
Output
Μέθοδοι Διαχείρισης Λιστών (List Methods)
Όπως αναφέραμε και στην αρχή αυτού του δωρεάν μαθήματος Python, οι λίστες διαθέτουν αρκετές ενσωματωμένες μεθόδους (methods). Πρόκειται για έτοιμες εντολές που μας δίνουν τη δυνατότητα να διαχειριστούμε και να τροποποιήσουμε τα δεδομένα τους με μεγάλη ευκολία. Πάμε, λοιπόν, να δούμε στην πράξη τις πιο βασικές και χρήσιμες από αυτές!
len( )
Μια εξαιρετικά χρήσιμη συνάρτηση είναι η len(). (Μην ανησυχείτε για τη διαφορά ανάμεσα σε "συνάρτηση/function" και "μέθοδο/method" – θα την εξηγήσουμε αναλυτικά σε επόμενη ενότητα!). Η len() δέχεται μέσα στις παρενθέσεις της το όνομα μιας λίστας και μας επιστρέφει τον συνολικό αριθμό των στοιχείων της. Αν το αποτέλεσμα που πάρουμε είναι 0, αυτό σημαίνει πως η λίστα είναι άδεια. Πρόκειται, δηλαδή, για άλλον έναν πρακτικό τρόπο να ελέγξουμε γρήγορα αν μια λίστα περιέχει δεδομένα.
app.py
Output
💡 Ένα χρήσιμο tip: Είτε χρησιμοποιείτε τη len() είτε οποιαδήποτε άλλη συνάρτηση ή μέθοδο δούμε παρακάτω, το περιβάλλον που γράφετε κώδικα (το IDE σας) είναι εδώ για να σας βοηθήσει. Αν απλά αφήσετε τον δείκτη του ποντικιού (cursor) πάνω από τη λέξη μέσα στον κώδικά σας, θα εμφανιστεί αυτόματα ένα μικρό παραθυράκι με μια γρήγορη περιγραφή για το τι ακριβώς κάνει!Η συνάρτηση len() αποδεικνύεται εξαιρετικά χρήσιμη και σε συνδυασμό με ένα for loop. Ειδικά σε περιπτώσεις που το μέγεθος μιας λίστας μεταβάλλεται ή δεν μας είναι γνωστό εκ των προτέρων, μπορούμε να χρησιμοποιήσουμε τη len() (συνήθως παρέα με τη συνάρτηση range()) για να διατρέξουμε τα στοιχεία της λίστας με βάση τη θέση τους (index) με απόλυτη ασφάλεια.
app.py
Output
Προσθήκη Στοιχείων σε μια Λίστα
append( )
Όπως αναφέραμε στο προηγούμενο μάθημα, οι λίστες στην Python είναι αντικείμενα (objects). Πρακτικά, αυτό σημαίνει ότι για να χρησιμοποιήσουμε τις μεθόδους τους, αρκεί να γράψουμε το όνομα της λίστας, να βάλουμε μια τελεία (.) και να επιλέξουμε τη μέθοδο που θέλουμε. Ας ξεκινήσουμε με την append(). Η μέθοδος αυτή μας επιτρέπει να προσθέσουμε νέα στοιχεία (elements) στη λίστα μας. Το σημαντικό που πρέπει να θυμάστε εδώ είναι ότι κάθε νέο στοιχείο που προσθέτουμε με την append(), τοποθετείται πάντα στο τέλος της λίστας.
app.py
Output
insert( )
Ο δεύτερος τρόπος για να προσθέσουμε στοιχεία (elements) σε μια λίστα είναι η μέθοδος insert(). Η βασική της διαφορά από την append() είναι ότι η insert() δεν βάζει το στοιχείο αναγκαστικά στο τέλος, αλλά μας ζητάει να δηλώσουμε την ακριβή θέση (index) στην οποία θέλουμε να τοποθετηθεί. Το νέο στοιχείο θα πάρει ακριβώς το index που δηλώνουμε, και όλα τα υπόλοιπα δεδομένα απλώς θα "σπρωχτούν" μία θέση προς τα δεξιά για να του κάνουν χώρο.
app.py
Output
Αφαίρεση Στοιχείων από μια Λίστα
pop( )
Η μέθοδος pop() αναλαμβάνει να διαγράψει το τελευταίο στοιχείο (element) της λίστας μας. Ωστόσο, είναι αρκετά ευέλικτη: αν της δώσουμε έναν συγκεκριμένο δείκτη (index), θα αφαιρέσει το στοιχείο που βρίσκεται ακριβώς σε εκείνη τη θέση. Ένα πολύ ενδιαφέρον χαρακτηριστικό της pop() –το οποίο αναφέρεται και στην επίσημη τεκμηρίωση (documentation) της Python– είναι ότι, μόλις εκτελεστεί, μας επιστρέφει πίσω ως τιμή το στοιχείο που μόλις αφαίρεσε. Αυτό είναι εξαιρετικά χρήσιμο αν θέλουμε να γνωρίζουμε ποιο δεδομένο διαγράφηκε ή αν θέλουμε να το αποθηκεύσουμε κάπου αλλού!
app.py
Output
index( )
Αν, πριν διαγράψουμε ένα στοιχείο, χρειάζεται πρώτα να μάθουμε σε ποια ακριβώς θέση (index) βρίσκεται μέσα στη λίστα, η Python μάς δίνει τη λύση με τη μέθοδο index(). Δίνοντάς της την τιμή που ψάχνουμε, η μέθοδος αυτή σαρώνει τη λίστα και μας επιστρέφει τον ακριβή αριθμό της θέσης της. Έτσι, μπορούμε να προχωρήσουμε στη διαγραφή (π.χ. με την pop()) με απόλυτη ακρίβεια.
app.py
Output
remove( )
Η μέθοδος remove() μάς επιτρέπει να διαγράψουμε στοιχεία (elements) από μια λίστα με βάση την ίδια τους την τιμή, χωρίς να χρειάζεται να γνωρίζουμε τη θέση (index) στην οποία βρίσκονται. Στο δικό μας παράδειγμα με τις ομάδες, τα πράγματα είναι πολύ απλά: αρκεί να δώσουμε στην remove() το ακριβές όνομα της ομάδας που θέλουμε να αφαιρέσουμε, και εκείνη θα αναλάβει τα υπόλοιπα.
app.py
Output
Ταξινόμηση Λίστας
sorted( )
Η συνάρτηση sorted() είναι το ιδανικό εργαλείο όταν θέλουμε να βάλουμε τα δεδομένα μας σε τάξη (αλφαβητικά ή αριθμητικά), αλλά χωρίς να πειράξουμε την αρχική μας λίστα. Όταν εκτελείται, η sorted() δημιουργεί και μας επιστρέφει ένα ταξινομημένο αντίγραφο. Έτσι, αν θέλετε να οργανώσετε τα δεδομένα σας διατηρώντας το αρχικό σας list απόλυτα ανέπαφο, αυτή η συνάρτηση είναι μακράν η καλύτερη επιλογή.
app.py
Output
sort( )
Σε αντίθεση με τη συνάρτηση που μόλις είδαμε, η μέθοδος sort() κάνει μεν την ίδια ακριβώς δουλειά (ταξινομεί τα δεδομένα αλφαβητικά ή αριθμητικά), αλλά με μια τεράστια διαφορά: επηρεάζει μόνιμα την αρχική μας λίστα. Όταν χρησιμοποιήσετε την sort(), τα στοιχεία αναδιατάσσονται οριστικά στη νέα τους σειρά και η αρχική μορφή της λίστας χάνεται.
app.py
Output
Γιατί να χρησιμοποιήσουμε while loops με τις Λίστες;
Όπως είδαμε, η μέθοδος remove() είναι εξαιρετικά βολική, αλλά έχει έναν βασικό περιορισμό: αν η ίδια τιμή υπάρχει δύο, τρεις ή περισσότερες φορές μέσα στη λίστα μας, η remove() θα διαγράψει μόνο την πρώτη που θα συναντήσει, αφήνοντας τις υπόλοιπες ανέπαφες. Για να καταφέρουμε να διαγράψουμε όλες τις επαναλήψεις μιας τιμής, τη λύση μάς δίνουν τα while loops, όπως φαίνεται και στο παράδειγμα που ακολουθεί.
app.py
Output
Επομένως, για να είμαστε απόλυτα σίγουροι ότι θα διαγραφούν όλα τα στοιχεία που περιέχουν την τιμή που ψάχνουμε, ανεξάρτητα από το πόσες φορές εμφανίζονται, η καλύτερη λύση είναι να χρησιμοποιήσουμε ένα while loop.
app.py
Output
Λίγο πριν ολοκληρώσουμε το σημερινό δωρεάν μάθημα Python, αξίζει να κάνουμε μια τελευταία στάση. Ας δούμε δύο ακόμα πολύ χρήσιμες λειτουργίες που μπορούμε να εκτελέσουμε χρησιμοποιώντας τις μεθόδους μιας λίστας, οι οποίες σίγουρα θα σας φανούν απαραίτητες στην πορεία.
reverse( )
Η πρώτη από αυτές τις λειτουργίες είναι η μέθοδος reverse(). Όπως μαρτυρά και το όνομά της, μας επιτρέπει να αναποδογυρίσουμε —ή πιο σωστά, να αντιστρέψουμε— πλήρως τη σειρά των στοιχείων μέσα στη λίστα μας. Το πρώτο στοιχείο πηγαίνει τελευταίο, το δεύτερο προτελευταίο, και ούτω καθεξής. Μια μικρή υπενθύμιση: Όπως και η sort(), έτσι και η reverse() εφαρμόζεται επιτόπου, αλλάζοντας μόνιμα την αρχική μας λίστα!
app.py
Output
clear( )
Η δεύτερη και τελευταία λειτουργία που θα δούμε σήμερα είναι η μέθοδος clear(). Η δουλειά της είναι ακριβώς αυτή που φαντάζεστε από το όνομά της: καθαρίζει εντελώς τη λίστα μας! Όταν την καλέσουμε, διαγράφει με μία μόνο κίνηση όλα τα στοιχεία (elements) που υπάρχουν μέσα, αφήνοντάς μας με μια εντελώς άδεια λίστα, έτοιμη να δεχτεί νέα δεδομένα.
app.py
Output
del( )
Αντί να ψάχνουμε ένα στοιχείο (element) με βάση την τιμή ή το όνομά του για να το διαγράψουμε, μπορούμε να ακολουθήσουμε έναν άλλον δρόμο: την εντολή del. Η del δεν είναι ούτε method ούτε function, αλλά μια ενσωματωμένη λέξη-κλειδί της Python. Μας επιτρέπει να διαγράψουμε άμεσα οποιοδήποτε στοιχείο, αρκεί να της ορίσουμε την ακριβή θέση (index) στην οποία αυτό βρίσκεται μέσα στη λίστα μας.
app.py
Output
Τέλος, μια εξίσου σημαντική και καθημερινή λειτουργία είναι η μετατροπή μιας λίστας σε ένα ενιαίο κείμενο (string). Στην Python, αυτό μπορεί να γίνει πανεύκολα! Συνήθως χρησιμοποιούμε τη μέθοδο join(), η οποία παίρνει όλα τα ξεχωριστά στοιχεία (elements) της λίστας μας και τα ενώνει σε μια όμορφη, συνεχόμενη πρόταση, επιτρέποντάς μας μάλιστα να διαλέξουμε πώς θα χωρίζονται (π.χ. με κόμμα ή με κενό).
app.py
Output
Αν βρήκατε αυτό το δωρεάν μάθημα χρήσιμο, σκεφτείτε να μας υποστηρίξετε με μια μικρή δωρεά (donation). Η βοήθειά σας είναι πολύτιμη, καθώς μας επιτρέπει να μεγαλώσουμε αυτό το site, να βελτιώσουμε τις δυνατότητες της online πλατφόρμας μας και να συνεχίσουμε να προσφέρουμε ποιοτικά μαθήματα προγραμματισμού, εντελώς δωρεάν για όλους.
full-width


0 Comments
What do you think about Ground of Code?