Εάν έχετε χρησιμοποιήσει πίνακες σε άλλες γλώσσες προγραμματισμού, μπορείτε να βρείτε κάτι παρόμοιο με τη μορφή λιστών στο Python. Η μόνη διαφορά είναι ότι οι λίστες Python έρχονται με ένα επιπλέον πλεονέκτημα - δυναμικό μέγεθος. Όπως οι πίνακες, μπορείτε να τις χρησιμοποιήσετε για να αποθηκεύσετε περισσότερα από ένα αντικείμενα.
Γιατί απαιτείται βρόχος;
Ενώ εργάζεστε με λίστες, θα υπάρξουν στιγμές που θα πρέπει να εκτελέσετε την ίδια λειτουργία σε κάθε καταχώριση στη λίστα.
Για παράδειγμα, μπορεί να θέλετε να λάβετε το μέσο όρο όλων των καταχωρήσεων σε μια λίστα. Σε παρόμοια σημείωση, τι γίνεται αν έχετε αποθηκεύσει ιστολόγια σε μια λίστα και θέλετε να αποκτήσετε τον τίτλο τους;
Όλα αυτά τα σενάρια έχουν το ίδιο πρόβλημα: περιλαμβάνουν επανάληψη. Για να αντιμετωπίσετε αυτές τις ανησυχίες, μπορείτε απλά να χρησιμοποιήσετε βρόχους με λίστες στο Python.
Ας δούμε πώς οι βρόχοι διευκολύνουν την εκτέλεση λειτουργιών σε πολλά στοιχεία σε μια λίστα με ένα παράδειγμα.
Κατανόηση των βρόχων με λίστες μέσω ενός παραδείγματος
Ας υποθέσουμε ότι θέλετε να εκτυπώσετε μια λίστα Αμερικανών Κολυμβητών της Χρονιάς από το 2016 έως το 2019 (κανένας δεν απονεμήθηκε το 2020 λόγω του COVID-19). Χωρίς βρόχους, θα πρέπει να ανακτήσετε κάθε όνομα ένα προς ένα από τη λίστα. Ωστόσο, υπάρχουν δύο σημαντικά ζητήματα με αυτήν τη μέθοδο:
- Η εκτύπωση κάθε ονόματος είναι επαναλαμβανόμενη και χρονοβόρα όταν εργάζεστε με μια μεγάλη λίστα.
- Η τροποποίηση του κώδικα για κάθε παρουσία απαιτεί σημαντική προσπάθεια.
Σχετιζομαι με: Πώς να χρησιμοποιήσετε ένα Loop ενώ στο Python
Ευτυχώς, ένα for for loop μπορεί να αντιμετωπίσει και τα δύο αυτά ζητήματα αποτελεσματικά. Εξετάστε τον ακόλουθο κώδικα:
κολυμβητές = [«phelps», "ντύσιμο", «Καλισζ», "ντύσιμο"]
Για κολυμβητής σε κολυμβητές:
εκτύπωση (κολυμβητής)
Ας αναλύσουμε αυτόν τον κώδικα σε τρία βήματα:
- Ορίζετε μια λίστα κολυμβητές και αποθηκεύστε τα ονόματα των νικητών σε αυτό.
- Ορίζετε ένα για βρόχο, τραβήξτε ένα όνομα από τη λίστα κολυμβητές ένα προς ένα και αντιστοιχίστε το στη μεταβλητή κολυμβητής.
- Ζητάτε από την Python να εκτυπώσει ένα όνομα στο οποίο έχει εκχωρηθεί κολυμβητής σε αυτή τη συγκεκριμένη επανάληψη.
Τώρα, ο Python συνεχίζει να επαναλαμβάνει το 2αρ και 3rd βήματα για να εκτυπώσετε όλους τους κολυμβητές στη λίστα σας. Για τη δική σας ευκολία, μπορείτε να το διαβάσετε ως εξής: "Για κάθε κολυμβητή στη λίστα των κολυμβητών μου, εμφανίστε το όνομα του κολυμβητή." Εδώ είναι η έξοδος:
Μια σύντομη ματιά στους βρόχους
Το θέμα του βρόχου είναι κρίσιμο επειδή είναι μια από τις βασικές προσεγγίσεις για την αυτοματοποίηση επαναλαμβανόμενων εργασιών. Για παράδειγμα, στο δικό μας swimmers.py αρχείο, η Python επεξεργάζεται την πρώτη γραμμή του βρόχου:
Για κολυμβητής σε κολυμβητές:
Εδώ, λέτε στην Python να πάρει την πρώτη τιμή από τη λίστα σας, κολυμβητές. Στη συνέχεια, το εκχωρεί στην καθορισμένη μεταβλητή σας κολυμβητής. Δεδομένου ότι η πρώτη τιμή είναι "phelps", ισχύει η ακόλουθη δήλωση:
εκτύπωση (κολυμβητής)
Είναι σημαντικό να κατανοήσετε ότι η Python εκτυπώνει την πιο πρόσφατη τιμή του κολυμβητής σε αυτό το στάδιο, που συμβαίνει να είναι «phelps». Καθώς η λίστα αποτελείται από πολλές τιμές, η Python επιστρέφει στην πρώτη γραμμή του βρόχου:
Για κολυμβητής σε κολυμβητές:
Αυτή τη φορά, η Python θα πάρει το επόμενο όνομα από τη λίστα σας, "dressel" και θα το εκχωρήσει στη μεταβλητή κολυμβητής. Και πάλι, η Python θα εκτελέσει το ακόλουθο κομμάτι κώδικα:
εκτύπωση (κολυμβητής)
Τώρα, η Python εκτυπώνει την πιο πρόσφατη τιμή του κολυμβητής, που τυχαίνει να είναι «ντύσιμο». Ομοίως, η Python θα επαναλάβει το βρόχο και θα εκτυπώσει «kalisz» και «dressel».
Μετά την εκτύπωση της τελευταίας τιμής, η Python πηγαίνει ξανά στην πρώτη γραμμή του βρόχου και επειδή δεν υπάρχει άλλη είσοδος, θα μετακινηθεί στην επόμενη γραμμή. Σε αυτό το πρόγραμμα, δεν υπάρχει τίποτα μετά το for loop, οπότε τελειώνει.
Καθώς συνεχίζετε να περιηγείστε σε λίστες, λάβετε υπόψη ότι ανεξάρτητα από το βήμα που ορίζετε στον κώδικά σας, θα επαναλαμβάνεται μία φορά για κάθε καταχώριση λίστας, ανεξάρτητα από το μήκος της λίστας. Αυτό σημαίνει ότι ακόμη και αν προσθέσετε ένα δισεκατομμύριο καταχωρίσεις στη λίστα σας, η Python θα εκτελέσει την καθορισμένη ενέργεια σας ένα δισεκατομμύριο φορές.
Ένα άλλο πράγμα που πρέπει να σημειωθεί είναι ότι όταν ορίζετε το δικό σας για βρόχους, μπορείτε να επιλέξετε οποιοδήποτε όνομα για την προσωρινή μεταβλητή που έχει εκχωρηθεί σε κάθε καταχώριση στη λίστα. Ωστόσο, συνιστάται να επιλέξετε ένα όνομα που ταιριάζει στο περιβάλλον σας για καλύτερη αναγνωσιμότητα κώδικα.
Για παράδειγμα, εδώ είναι μια αποτελεσματική προσέγγιση για την αναζήτηση μιας λίστας προϊόντων, πουλιών και ηθοποιών:
για προϊόν σε προϊόντα:
για πουλί σε πουλιά:
για ηθοποιό σε ηθοποιούς:
Τώρα που έχετε μια βασική αντίληψη για το βρόχο, χειρίζεστε κάθε στοιχείο της λίστας σας. Επιστρέφοντας στο παράδειγμα του κολυμβητή, μπορείτε να δώσετε συγχαρητήρια σε κάθε κολυμβητή για τις δεξιότητές τους γράφοντας τον ακόλουθο κώδικα:
κολυμβητές = ['phelps', 'dressel', 'kalisz', 'dressel']
για κολυμβητές σε κολυμβητές:
εκτύπωση (f "{swimmer.title ()}, οι δεξιότητες κολύμβησης είναι καταπληκτικές!")
Αυτός ο κωδικός λειτουργεί ακριβώς όπως αυτός πριν. η μόνη διαφορά είναι ότι δημιουργείτε ένα μήνυμα για κάθε κολυμβητή φωνάζοντας τα ονόματά τους. Όπως και πριν, ο βρόχος τρέχει ξανά κάθε κολυμβητής και εκτυπώνει μια δήλωση για καθένα από αυτά. Όπως αναμενόταν, η παραγόμενη έξοδος φαίνεται παρακάτω:
Μπορείτε επίσης να γράψετε πολλές δηλώσεις στο loop for. Λάβετε υπόψη ότι ο βρόχος περικλείει κάθε γραμμή εσοχής που ακολουθεί κολυμβητής σε κολυμβητές, και η Python εκτελεί κάθε γραμμή μία φορά για κάθε τιμή λίστας. Ως εκ τούτου, υπάρχουν ατελείωτες δυνατότητες για όλες τις καταχωρήσεις στη λίστα.
Για παράδειγμα, μπορείτε να γράψετε μια άλλη δήλωση εκτύπωσης στο παραπάνω παράδειγμα.
κολυμβητές = ['phelps', 'dressel', 'kalisz', 'dressel']
για κολυμβητές σε κολυμβητές:
εκτύπωση (f "{swimmer.title ()}, οι δεξιότητες κολύμβησης είναι καταπληκτικές!")
print (f "Ανυπομονούμε να σας δούμε στον επόμενο διαγωνισμό, {swimmer.title ()}.
")
Καθώς έχετε χρησιμοποιήσει την εσοχή και για τις δύο δηλώσεις, η Python εκτελεί καθεμία από αυτές για κάθε καταχώρηση στη λίστα.
Μετά την ολοκλήρωση του βρόχου, μπορείτε να συνοψίσετε την έξοδο σας και μετά να μετακινηθείτε σε άλλα μέρη του προγράμματος. Αυτό το τμήμα μετά τον βρόχο δεν πρέπει να εσοχή, επομένως δεν επαναλαμβάνεται.
Τώρα μπορείτε εύκολα να περάσετε λίστες
Σε αυτό το άρθρο, μάθατε γιατί χρειάζονται βρόχοι, πώς να χρησιμοποιήσετε βρόχους με λίστες και πώς η Python επεξεργάζεται καταχωρήσεις σε μια λίστα όταν είναι εσοχή σε έναν βρόχο. Τώρα μπορείτε να χρησιμοποιήσετε λίστες και βρόχους για να γράψετε πιο περίπλοκο κώδικα και να δημιουργήσετε προγράμματα υψηλότερης ποιότητας.
Για να δοκιμάσετε τις γνώσεις σας, ακολουθεί μια απλή άσκηση: δημιουργήστε μια λίστα με 10 αριθμούς και εκτυπώστε μόνο αριθμούς που διαιρούνται με πέντε.
Εργάζεστε με λίστες στο Python; Να τι πρέπει να γνωρίζετε σχετικά με τη χρήση της λειτουργίας προσάρτησης Python όταν εργάζεστε με λίστες.
Διαβάστε Επόμενο
- Προγραμματισμός
- Πύθων
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.