Cum se folosește Înțelegerea listei în Python

Cum se folosește Înțelegerea listei în Python

Utilizarea la timp a înțelegerii listei în Python vă poate ușura operațiunile iterative de listă. Pe lângă faptul că este o singură linie, este mai ușor de citit și se execută mai eficient.





Cu toate acestea, s-ar putea să vă exersați dacă nu știți cum să îl utilizați. Poate fi chiar mai frustrant dacă nu știi unde să-l aplici în codul tău. Aici, vă vom arăta cum să utilizați înțelegerea listei în Python cu câteva exemple din viața reală.





Ce este înțelegerea listei în Python și cum funcționează?

Crearea unei liste de articole cu Python este ușoară. Cu toate acestea, sarcina poate deveni puțin plictisitoare atunci când trebuie să generați o listă de valori sau elemente din operații matematice sau șiruri. Atunci este util să înțelegeți lista.





Un avantaj al utilizării înțelegerii listei este că puteți efectua mai multe operații într-o singură listă.

Cele mai bune 5 site-uri gratuite de streaming de filme

În schimb, creează elemente noi și le adaugă la o listă goală pe care o declară automat. Deci, în loc să creați manual o listă goală și să o atașați cu un pentru buclă, înțelegerea listei Python vă permite să faceți acest lucru în mod automat, fără să vă deranjați modul în care apare noua listă.



Termenul „înțelegere listă” provine din faptul că toate operațiunile se află într-o listă Python atribuită unei variabile numite. După cum am menționat anterior, vă permite să efectuați operațiuni specifice într-o singură linie de cod. Apoi adaugă ieșirea la o nouă listă.

În cele din urmă, puteți utiliza, de asemenea, rezultatul unei înțelegeri a listei în alte scopuri. Asta pentru că stochează expresii în variabile separate. Deci, vă puteți referi la ele mai târziu.





De exemplu, ai putea fi răzuirea unui site web cu BeautifulSoup . Să presupunem că intenționați să obțineți numele tuturor articolelor și prețurile acestora de pe site.

Apoi decideți să introduceți datele răzuite într-un fișier CSV sau Excel. Practica ideală este să răzuiești numele tuturor articolelor și prețurile acestora și să le plasezi pe ambele în coloane separate. Cu toate acestea, utilizarea unei înțelegeri a listei, în acest caz, vă asigură că aveți datele răzuite în variabile dedicate. Apoi, puteți converti astfel de variabile într-un Python DataFrame ulterior.





Uită-te la exemplul de mai jos:

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

Odată ce obțineți variabilele în buclă, le puteți pune apoi în coloane separate într-un DataFrame folosind Python's Pandas.

Cum să creați și să utilizați o înțelegere a listei în Python

The pentru bucla este un iterator esențial într-o listă de înțelegere. În general, o înțelegere a listei în Python ia acest format:

ComprehensionVariable = [expression for items in list]

Tipărire ÎnțelegereVariabilă generează rezultatul codului de mai sus ca listă.

Cu toate acestea, aveți grijă să nu confundați o înțelegere a listei cu o deschidere pentru buclă.

De exemplu, hai folosiți o buclă deschisă pentru a obține o listă cu toți multiplii de trei între 1 și 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]

Pentru a compara cele două, să facem același lucru folosind o înțelegere a listei:

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

Puteți utiliza și o înțelegere a listei cu enunțuri condiționale. Exemplul de cod de mai jos tipărește toate numerele impare cuprinse între 1 și 10:

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

Acum, să rescriem și codul de mai sus folosind un open pentru buclă:

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

Legate de: Cum se adaugă o listă în Python

O înțelegere a listei acceptă, de asemenea, declarații imbricate dacă:

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

Este, de asemenea, nevoie de un imbricat pentru buclă:

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

Puteți avea, de asemenea, un simplu imbricat pentru buclă într-o listă de înțelegere:

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

Puteți manipula șiruri și cu înțelegerea listei Python. Să aruncăm o privire la o înțelegere a contorului de cuvinte de mai jos:

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

O înțelegere a listei poate accepta, de asemenea, o funcție care efectuează o operație specifică. Să introducem o funcție de multiplicare care obține numere pare într-o listă pentru a vedea cum funcționează:

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]

Puteți scrie în continuare codul de mai sus într-o singură funcție fără a utiliza înțelegerea. Dar o înțelegere a listei este utilă atunci când trebuie să efectuați mai multe iterații și să plasați fiecare dintre ele în variabile separate.

De exemplu, puteți efectua o altă operație pe n și au o variabilă dedicată pentru aceasta. Să modificăm înțelegerea de mai sus pentru a genera numere pare din cele impare:

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

Dictionary and Set Comprehensions

În plus față de o listă de înțelegere, Python oferă și un dicționar și o funcționalitate de înțelegere setată.

Aruncați o privire la exemplul de înțelegere a dicționarului de mai jos pentru a vedea cum funcționează:

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}

Codul de mai sus repetă lista numerelor cuprinse între 1 și 9 și le transformă în chei. Apoi îi spune lui Python să înmulțească fiecare cheie cu două. În cele din urmă, prezintă rezultatele acelei operațiuni ca valorile corespunzătoare pentru fiecare cheie din tabloul rezultat.

Legate de: Cum funcționează matricele și listele în Python

O înțelegere setată este un pic similară cu o înțelegere a listei. Iată un exemplu de înțelegere setată:

poți afla dacă cineva te-a pus pe Google
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Cu toate acestea, spre deosebire de înțelegerea listei, înțelegerea setului elimină duplicatele:

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}

Puteți încerca codul de mai sus folosind o listă pentru a vedea cum diferă.

Puteți folosi de fiecare dată înțelegerea listei?

Am analizat diferite exemple de înțelegere a listelor și unde le puteți folosi. Cu toate acestea, la fel ca orice altă metodă Python, cazul de utilizare al unei înțelegeri a listei depinde de problema specifică pe care doriți să o rezolvați. Prin urmare, ar trebui să-l utilizați numai dacă este ideal pentru problema specifică pe care doriți să o rezolvați.

Unul dintre scopurile înțelegerii listei este să vă simplifice codul și să îl facă mai ușor de citit. Deci, asigurați-vă că evitați complexitatea atunci când vă ocupați de aceasta. De exemplu, o lungă înțelegere Python poate deveni complexă de citit. Asta își învinge scopul.

Acțiune Acțiune Tweet E-mail Cum să utilizați înțelegerile Python List (și când să nu le utilizați)

Iată tot ce trebuie să știți despre utilizarea acestei caracteristici uimitoare a Python care vă va spori productivitatea și lizibilitatea codului peste noapte.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Piton
Despre autor Idisou Omisola(94 articole publicate)

Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona