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

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

Τι είναι η κατανόηση λίστας στο Python και πώς λειτουργεί;

Η δημιουργία μιας λίστας στοιχείων με το Python είναι εύκολη. Ωστόσο, η εργασία μπορεί να γίνει λίγο κουραστική όταν πρέπει να δημιουργήσετε μια λίστα τιμών ή αντικειμένων από μαθηματικές ή συμβολοσειρές. Αυτό είναι όταν η κατανόηση της λίστας μπορεί να είναι χρήσιμη.

Ένα πλεονέκτημα της χρήσης κατανόησης λίστας είναι ότι μπορείτε να εκτελέσετε πολλές λειτουργίες σε μία λίστα.

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

instagram viewer
Για βρόχο, η κατανόηση της λίστας της Python σάς επιτρέπει να το κάνετε αυτό αυτόματα χωρίς να ανησυχείτε για το πώς έρχεται η νέα λίστα.

Ο όρος "κατανόηση λίστας" προέρχεται από το γεγονός ότι όλες οι λειτουργίες βρίσκονται σε μια λίστα Python σε μια μεταβλητή με όνομα. Όπως δηλώσαμε νωρίτερα, σας επιτρέπει να εκτελείτε συγκεκριμένες λειτουργίες σε μία μόνο γραμμή κώδικα. Στη συνέχεια προσαρτά την έξοδο σε μια νέα λίστα.

Τελικά, μπορείτε επίσης να χρησιμοποιήσετε το αποτέλεσμα μιας κατανόησης λίστας για άλλους σκοπούς. Αυτό συμβαίνει επειδή στοιβάζει εκφράσεις σε ξεχωριστές μεταβλητές. Έτσι μπορείτε να τους αναφέρετε αργότερα.

Για παράδειγμα, μπορεί να είστε ξύσιμο ενός ιστότοπου με το BeautifulSoup. Ας υποθέσουμε ότι σκοπεύετε να λάβετε το όνομα όλων των αντικειμένων και τις τιμές τους από τον ιστότοπο.

Στη συνέχεια αποφασίζετε να βάλετε τα αποκομμένα δεδομένα σε αρχείο CSV ή Excel. Η ιδανική πρακτική είναι να ξύσετε το όνομα όλων των αντικειμένων και των τιμών τους και να τα τοποθετήσετε και τα δύο σε ξεχωριστές στήλες. Ωστόσο, χρησιμοποιώντας μια κατανόηση λίστας, σε αυτήν την περίπτωση, διασφαλίζεται ότι έχετε τα αποκομμένα δεδομένα σε ειδικές μεταβλητές. Στη συνέχεια, μπορείτε να μετατρέψετε αυτές τις μεταβλητές σε Python DataFrame αργότερα.

Δείτε το παρακάτω παράδειγμα:

Προϊόντα = [i.text for i in bs.find_all ('name tags')]
Τιμή = [i.text για i in bs.find_all ('tags')]

Μόλις λάβετε τις μεταβλητές με βρόχο, μπορείτε στη συνέχεια να τις τοποθετήσετε σε ξεχωριστές στήλες σε ένα DataFrame χρησιμοποιώντας τα Panda του Python's.

Πώς να δημιουργήσετε και να χρησιμοποιήσετε μια κατανόηση λίστας στο Python

ο Για ο βρόχος είναι ένας ουσιαστικός επαναληπτής σε μια κατανόηση λίστας. Γενικά, μια κατανόηση λίστας στο Python παίρνει αυτήν τη μορφή:

ComprehensionVariable = [έκφραση για στοιχεία στη λίστα]

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

Ωστόσο, προσέξτε να μην συγχέετε μια κατανόηση λίστας με ανοιχτό Για βρόχος.

Για παράδειγμα, ας χρησιμοποιήστε ένα άνοιγμα για βρόχο για να λάβετε μια λίστα με όλα τα πολλαπλάσια των τριών μεταξύ 1 και 30:

myList = []
για i στην περιοχή (1, 11):
myList.append (i * 3)
εκτύπωση (myList)
Έξοδος: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Για να συγκρίνουμε τα δύο, ας κάνουμε το ίδιο πράγμα χρησιμοποιώντας μια κατανόηση λίστας:

multiplesOf3 = [i * 3 για i στην περιοχή (1, 11)]
εκτύπωση (multiplesOf3)
Έξοδος = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

oddNumbers = [i για i στην περιοχή (1, 11) αν όχι i% 2 == 2]
εκτύπωση (oddNumbers)
Έξοδος = [1, 3, 5, 7, 9]

Τώρα, ας ξαναγράψουμε τον παραπάνω κώδικα χρησιμοποιώντας ένα ανοιχτό Για βρόχος:

myList = []
για i στην περιοχή (1, 11):
αν όχι i% 2 == 0:
myList.append (i)
εκτύπωση (myList)
Έξοδος: [1, 3, 5, 7, 9]

Σχετιζομαι με: Πώς να προσθέσετε μια λίστα στο Python

Μια κατανόηση λίστας δέχεται επίσης ένθετο εάν δηλώσεις:

oddNumbers = [i for i in range (1, 11) if not i% 2 == 0 if i <4]
εκτύπωση (oddNumbers)
Έξοδος: [1, 3]

Παίρνει επίσης ένα ένθετο Για βρόχος:

someNums = [[i * 2 για i στην περιοχή (1, 3)] για _ στην περιοχή (4)]
εκτύπωση (someNums)

Μπορείτε επίσης να έχετε ένα απλό ένθετο Για βρόχος σε μια κατανόηση λίστας:

someNums = [i * 2 για i στην περιοχή (1, 3) για k στην περιοχή (4)]

Μπορείτε επίσης να χειριστείτε συμβολοσειρές με την κατανόηση της λίστας Python. Ας ρίξουμε μια ματιά σε μια αντίληψη λέξεων παρακάτω:

word = ["Αυτός είναι ένας οδηγός κατανόησης λίστας python"]
wordCounter = [i.count (") + 1 για i in word]
εκτύπωση (wordCounter)
Έξοδος: 7

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

Αριθμοί = [4, 7, 8, 15, 17, 10]
πολλαπλασιαστής def (n):
πολλαπλάσιο = n * 2
επιστροφή πολλαπλών
multipEven = [πολλαπλασιαστής (i) για i in Numbers εάν i% 2 == 0]
εκτύπωση (multiEven)
Έξοδος: [8, 16, 20]

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

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

multipEvenFromOdds = [πολλαπλασιαστής (i) για i in Numbers αν όχι i% 2 == 0]
εκτύπωση (multipleEvenFromOdds)
Έξοδος: [14, 30, 34]

Λεξικό και ορισμοί

Εκτός από μια κατανόηση λίστας, η Python προσφέρει επίσης ένα λεξικό και μια λειτουργική κατανόηση.

Ρίξτε μια ματιά στο παράδειγμα κατανόησης λεξικού παρακάτω για να δείτε πώς λειτουργεί:

αντίστοιχο = {i: i * 2 for i in range (10) if not i% 2 == 0}
εκτύπωση
Έξοδος: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

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

Σχετιζομαι με: Πώς λειτουργούν οι πίνακες και οι λίστες στο Python

Ένα σύνολο κατανόησης είναι λίγο παρόμοιο με μια κατανόηση λίστας. Ακολουθεί ένα παράδειγμα συνόλου κατανόησης:

αριθμοί = {i ** (2) για i στην περιοχή (10) εάν i% 4 == 0}
εκτύπωση (αριθμοί)
Έξοδος: {0, 16, 64}

Ωστόσο, σε αντίθεση με την κατανόηση της λίστας, το set κατανόηση αφαιρεί διπλότυπα:

αριθμοί = {i για i στην περιοχή (20) εάν i% 2 == 1 για k στην περιοχή (10) εάν k% 2 == 1}
εκτύπωση (αριθμοί)
Έξοδος: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

Μπορείτε να χρησιμοποιείτε την κατανόηση λίστας κάθε φορά;

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

Ένας από τους σκοπούς της κατανόησης λίστας είναι να απλοποιήσετε τον κώδικά σας και να τον κάνετε πιο ευανάγνωστο. Έτσι, βεβαιωθείτε ότι αποφεύγετε την πολυπλοκότητα όταν το αντιμετωπίζετε. Για παράδειγμα, μια μακρά κατανόηση Python μπορεί να γίνει πολύπλοκη για ανάγνωση. Αυτό νικά τον σκοπό του.

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Τρόπος χρήσης των καταστάσεων λίστας Python (και πότε να μην τις χρησιμοποιήσετε)

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

Σχετικά θέματα
  • Προγραμματισμός
  • Πύθων
Σχετικά με τον Συγγραφέα
Idowu Omisola (Δημοσίευση 55 άρθρων)

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

Περισσότερα από το Idowu Omisola

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.