Înțelegerea listei în Python – Cu exemple

În Python, listele de înțelegere vă ajută să creați liste noi din iterabile existente, cum ar fi liste, șiruri și tupluri.

Sintaxa lor succintă vă permite să creați liste noi într-o singură linie de cod. Și acest tutorial vă va învăța cum puteți face asta.

În următoarele câteva minute, veți învăța:

  • Cum să creați o listă nouă folosind bucle for,
  • Sintaxa pentru utilizarea listelor de înțelegere în Python și
  • Cum se modifică listele de înțelegere cu declarația condiționată if.

În plus, veți codifica și câteva exemple care vă vor ajuta să înțelegeți mai bine înțelegerea listelor.

Să ne scufundăm.🌊

Cum se creează liste Python folosind for Loops

Să presupunem că aveți un număr de listă de numere nums. Și ați dori să creați o altă listă care să conțină cubul tuturor numerelor în numere. Iată cum o veți face folosind o buclă for în Python:

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

În codul de mai sus, avem următorii pași:

  • Inițializați o listă goală num_cubes.
  • Parcurgeți lista de numere.
  • Accesați fiecare număr num și calculați-i cubul folosind operatorul de exponențiere: num**3.
  • În cele din urmă, adăugați valoarea cubului la lista num_cubes

Notă: În Python, operatorul de exponențiere ** este folosit cu sintaxa: num**pow—numărul num este ridicat la puterea pow.

Cu toate acestea, puteți face acest lucru mai ușor folosind înțelegerea listei în Python. Să continuăm să învățăm sintaxa acesteia.

Sintaxa de înțelegere a listei Python

Sintaxa generală pentru înțelegerea listelor este prezentată mai jos.

<new_list> = [<expression> for <item> in <iterable>]

Să analizăm sintaxa de mai sus.

  • În Python, listele sunt delimitate de o pereche de paranteze drepte []— prin urmare, trebuie să includeți declarația de înțelegere a listei [].
  • în înseamnă că treceți în buclă printr-un iterabil. Orice obiect Python prin care puteți accesa elemente individuale, cum ar fi liste, tupluri și șiruri, sunt iterabile.
  • este rezultatul pe care doriți să o calculați pentru fiecare din .

Și asta sună simplu, da?

În esență, ați dori să faceți ceva pentru toate articolele din listă (sau orice iterabil) pentru a obține o nouă listă.

Folosind aceasta, putem simplifica sintaxa, așa cum se arată în imaginea de mai jos.

Sintaxa de înțelegere a listei Python (Imagine după autor)

Acum că ați învățat sintaxa, este timpul să începeți să codificați. Puteți utiliza IDE-ul online Python al tipstrick.ro pentru a urma aceste exemple. Sau le puteți rula pe mașina dvs. locală.

Exemple de înțelegere a listelor Python

În secțiunea anterioară, ați creat o nouă listă num_cubes din nums. Să începem prin a rescrie asta folosind înțelegerea listei.

Utilizarea listei de înțelegere cu numere

Acum să folosim sintaxa simplificată după cum urmează:

  • : Aici, trebuie să cubiți fiecare număr. Deci înlocuiți cu num**3.
  • : variabila de buclă este num—numerele individuale din listă.
  • : Lista existentă pe care o avem este nums.
  • Și [num**3 for num in nums] este expresia finală. ✅

Punând totul împreună, avem următorul fragment de cod:

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

Felicitări, ți-ai codificat prima înțelegere a listei.🎉

Mergând mai departe, să lucrăm cu șiruri Python.

Utilizarea listei de înțelegere cu șiruri

Să presupunem că ai autorii listei — poți rescrie lista de mai jos cu autorii tăi preferați.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

Observați cum numele autorilor sunt cu litere mici în lista de mai sus. Am dori acum să le formatăm în cazul titlului și să le stocăm într-o nouă listă numită listă_autor.

Notă: În Python, metoda șirurilor titlu() acceptă un șir ca argument și returnează o copie a șirului formatat în cazul titlului. Adică prima literă a fiecărui cuvânt este scrisă cu majuscule: Prenume Nume

Deci, iată tot ce trebuie să faci:

  • parcurge lista de autori și pentru fiecare autor din listă,
  • apelați autor.title() pentru a obține o copie a șirului cu majuscule și minuscule.

Și codul Python pentru aceasta este afișat mai jos:

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

În rezultatul de mai sus, observați cum au fost formatate numele tuturor autorilor în cazul titlului – ceea ce ne-am dorit.

Utilizarea listei de înțelegere cu mai multe liste

Până acum, ați învățat cum să utilizați înțelegerea listelor pentru a crea liste noi dintr-o listă existentă. Acum să învățăm cum să creăm o nouă listă din mai multe liste.

De exemplu, luați în considerare această problemă: aveți două liste l_arr și b_arr care conțin lungimile și lățimile a 4 dreptunghiuri.

Și trebuie să creați o nouă zonă de listă care să includă zona acestor 4 dreptunghiuri. Amintiți-vă, zonă = lungime * lățime.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

Veți avea nevoie de elemente din ambele liste (l_arr și b_arr) pentru a calcula suprafața. Și o puteți face folosind funcția zip() a lui Python.

Notă: În Python, funcția zip() preia unul sau mai multe iterabile ca argumente cu sintaxa zip(*iterables). Apoi returnează un iterator de tupluri, unde tuplul i conține elementul i din fiecare dintre iterabile.

Următoarea imagine descrie acest lucru în detaliu. Aveți 4 valori în l_arr și b_arr, deci intervalul de indici este de la 0 la 3. După cum puteți vedea, tuplul 0 conține l_arr[0] și b_arr[0]tuplul 1 conține l_arr[1] și b_arr[1]si asa mai departe.

Funcția Python zip() (Imagine după autor)

Prin urmare, puteți trece prin zip(l_arr,b_arr) după cum se arată mai jos:

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

În secțiunea următoare, veți învăța cum să utilizați instrucțiunile condiționate în cadrul unei liste de înțelegere.

Înțelegerea listei Python cu sintaxa condiției

Să începem prin a construi pe sintaxa anterioară pentru înțelegerea listei.

Iată sintaxa:

<new_list> = [<expression> for <item> in <iterable> if <condition>]

În loc să calculați pentru toate elementele, ați dori să o faceți numai pentru acele elemente care îndeplinesc o anumită —unde, condiție := Adevărat. Și aceasta duce la o sintaxă simplificată, așa cum se arată:

Înțelegerea listei Python cu sintaxa condiției (Imagine după autor)

▶ Cu asta, să trecem la exemple de cod.

Înțelegerea listei Python cu exemple de condiții

#1. Vi se dă șirul „Învăț Python în 2022”. Doriți să obțineți o listă cu toate cifrele din acest șir. Deci cum o faci?

În Python, .isdigit() acționează asupra unui caracter și returnează True dacă este o cifră (0-9); altfel se întoarce False.

Fragmentul de cod de mai jos arată cum puteți colecta lista tuturor cifrelor din șirul str1.

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

În codul de mai sus:

  • parcurgeți șirul str1,
  • accesați fiecare caracter pentru a verifica dacă este o cifră folosind metoda isdigit() și
  • adăugați char la noile cifre din listă numai dacă este o cifră.

Să luăm un alt exemplu.

#2. Aveți o listă de fructe.🍊 Și doriți să creați o listă starts_with_b care să conțină toate fructele din lista de fructe care încep cu b. Puteți folosi metoda startswith() pentru a scrie condiția.

.startswith(‘char’) returnează True dacă începe cu ‘char’; altfel se întoarce False.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

În rezultatul de mai sus, obținem „afine” și „banană”, care sunt cele două fructe care încep cu „b” în lista de fructe, așa cum ne așteptam.

Și asta încheie discuția noastră despre înțelegerea listelor.

Concluzie

Sper că acest tutorial v-a ajutat să înțelegeți listele de înțelegere în Python.

Să rezumăm:

  • Poți să folosești [<do this> for <all-items> in <this-list>] pentru a crea o nouă listă folosind lista de înțelegere.
  • În plus, puteți utiliza sintaxa [<do this> for <all-items> in <this-list> if <condition-is-True>] cu declarația condițională if.

În plus, ați codificat și mai multe exemple. Ca pas următor, puteți încerca să rescrieți unele dintre buclele existente Python pentru crearea listei folosind înțelegerea listei. Codare fericită! Până la următorul tutorial.😄

Acum puteți vedea cum să convertiți o listă într-un dicționar sau să aflați cum să gestionați fișierele în Python.

  Ce să căutați atunci când cumpărați software de editare video