Introducere în listele Comprehensions Python

Înțelegerile oferă un mod simplu și scurt de construire a secvențelor noi folosind secvențe deja definite în Python. Aceste secvențe pot fi Liste, seturi, Dicționare, etc. Înțelegerea listelor este una dintre caracteristicile valoroase ale Python. Pe scurt, List Comprehensions oferă o modalitate de a crea noi liste pe baza listelor existente. Cu alte cuvinte, Lista Comprehensions este o modalitate simplă de a crea o listă bazată pe unele informații. Aici, un accesibil este orice poate fi folosit pentru a face o buclă. Înțelegerile de listă fac posibilă utilizarea unei sintaxe alternative pentru crearea de liste și orice alte tipuri de date secvențiale în python. Vom arunca o privire asupra modului în care acestea sunt utile ulterior. Există 3 componente ale listei Comprehension, acestea sunt:

  • Expresie de ieșire: Aceasta este opțională și poate fi ignorată.
  • Iterable.
  • O variabilă care reprezintă membrii iterabilului, este adesea numită Iterator Variable.

Sintaxa și exemple:

În python, putem crea Lista de Înțelegeri folosind următoarea sintaxă:

list_variable = (x for x in iterable)

După cum puteți vedea în Lista Comprehensions, o listă este atribuită unei variabile. Să aruncăm o privire la un exemplu, mai întâi, putem lua în considerare o metodă pentru a găsi pătratul unui număr folosind o buclă:

Cod:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

ieşire:

Acum, să luăm în considerare să facem același lucru, dar folosind Lista Comprehensions în loc de buclă:

Cod:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

ieşire:

Aici, puteți vedea că parantezele pătrate „()” sunt folosite pentru a indica faptul că ieșirea expresiei din interiorul acestora este o listă.

Listă înțelegerile și funcțiile Lambda

Trebuie să rețineți că înțelegerile listelor nu sunt singura modalitate de a crea liste, Python are multe funcții încorporate și funcția lambda care pot fi utilizate, cum ar fi:

Cod:

letters = list(map(lambda x: x, 'human'))
print(letters)

ieşire:

În timp ce acest lucru funcționează în multe cazuri, Comprehensions List sunt mai bune la lizibilitate și mai ușor de înțeles de către cineva care nu este programatorul codului.

Adăugarea condiționărilor în listele de înțelegeri

Puteți modifica orice condiție necesară în cadrul unei înțelegeri a listei pentru a modifica lista existentă. Să aruncăm o privire la un exemplu care folosește condiționalele:

Cod:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

ieşire:

Iată un alt exemplu:

Cod:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

ieşire:

Utilizarea buclelor imbricate în listele de înțelegeri

Când este nevoie, putem folosi Bucle cuibărit în înțelegerile listelor, să aruncăm o privire la modul în care putem folosi bucle cuibărite în acest fel, găsind transpunerea unei matrice:

Cod:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

ieşire:

Exemple de liste Python

Iată mai jos exemplele Python ale Comprehensions List:

Exemplul # 1 - Eliminarea vocalelor dintr-o propoziție dată

Cod:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

ieşire:

Exemplul # 2 - Cartografierea numelor de țări cu capitalele lor

Cod:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

ieşire:

Avantajele înțelegerilor Python

Se poate gândi dacă Buclele pot fi folosite pentru a face aproape tot ce înțelege lista, de ce să le folosești în primul rând? Ei bine, răspunsul este în viteză și în timpul necesar pentru a finaliza sarcina și cantitatea de memorie necesară. Când se face o înțelegere a listei, deja reducem 3 linii de cod într-unul și atunci când se face, codul este mult mai rapid ca atunci când se confruntă cu o înțelegere a listei, python alocă mai întâi memoria pentru listă și apoi adaugă elemente în interiorul acesteia. de asemenea, este fără îndoială un mod mai elegant și mai sofisticat de a crea liste care se bazează pe liste preexistente.

Concluzie

Acum că am avut o experiență cu înțelegerile listelor, este ușor să înțelegem cum acestea ne permit să transformăm o listă într-o nouă listă. Acestea au o sintaxă simplă care limitează cantitatea de muncă necesară pentru crearea unei liste. Având în vedere că sintaxa și structura înțelegerilor listei este practic ca o notare de constructor de seturi, acestea devin rapid a doua natură pentru programatori și se asigură că odată ce codul va fi predat altei persoane pentru a-l menține și extinde, va fi ușor de înțeles și lucreaza cu.

Articol recomandat

Acesta este un ghid pentru Python de Comprehensions List. Aici discutăm înțelegerile listelor și funcțiile lambda împreună cu implementarea și ieșirea codului. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Distrugător în Python cu Avantaje
  2. Faceți în timp ce buclați în Python cu diagramă de flux
  3. Stray Array în Python cu metode
  4. Ce este AWS Lambda Layers?
  5. Tipuri de date PL / SQL
  6. Stray Array în JavaScript
  7. Diferite tipuri de date SQL cu exemple
  8. Ghid complet pentru Array of String