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

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

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





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





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

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





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

Τα παράθυρα 7 χρειάζονται πολύ χρόνο για να κλείσουν

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



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

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





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

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





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

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

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

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

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

ComprehensionVariable = [expression for items in list]

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

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

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

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

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

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

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

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

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Χρειάζεται επίσης μια ένθεση Για βρόχος:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

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

someNums = [i*2 for i in range(1, 3) for k in range(4)]

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

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

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

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

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

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

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Λεξικό και καθορισμένες κατανοήσεις

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

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

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

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

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

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

Ο ελεγκτής ps4 δεν θα συνδεθεί στο ps4 με usb
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

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

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

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

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

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

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

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

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Πύθων
Σχετικά με τον Συγγραφέα Ηδίσου Ομισόλα(Δημοσιεύθηκαν 94 άρθρα)

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

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

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

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

Κάντε κλικ εδώ για εγγραφή