Introduktion til listeforståelser Python

Forståelser giver en kort og nem måde at konstruere nye sekvenser ved hjælp af allerede definerede sekvenser i Python. Disse sekvenser kan være lister, sæt, ordbøger osv. Listeforståelse er en af ​​de værdifulde træk ved Python. Kort sagt giver Listeforståelser en måde at oprette nye lister baseret på eksisterende lister. Med andre ord, Listeforståelser er en enkel måde at oprette en liste baseret på nogle iterable. Her er en iterable alt, hvad der kan bruges til at loop over. Listeforståelser gør det muligt at bruge en alternativ syntaks til at oprette lister og andre sekventielle datatyper i python. Vi vil se på, hvordan disse er nyttige senere. Der er 3 komponenter i Listeforståelse, disse er:

  • Outputudtryk: Denne er valgfri og kan ignoreres.
  • Iterable.
  • En variabel, der repræsenterer medlemmer af den iterable, kaldes den ofte Iterator Variable.

Syntaks og eksempler:

I python kan vi oprette listeforståelser ved hjælp af følgende syntaks:

list_variable = (x for x in iterable)

Som du kan se i Listeforståelser, tildeles en liste til en variabel. Lad os se på et eksempel, først kan vi overveje en metode til at finde kvadratet til et tal ved hjælp af en løkke:

Kode:

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

Produktion:

Lad os nu overveje at gøre det samme, men bruge listeforståelser i stedet for en løkke:

Kode:

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

Produktion:

Her kan du se, at firkantede parenteser “()” bruges til at betegne, at output af udtrykket inde i dem er en liste.

Liste over udvidelser og Lambda-funktioner

Du skal huske, at listeforståelser ikke er den eneste måde at oprette lister på, Python har mange indbyggede funktioner og lambda-funktion, der kan bruges, såsom:

Kode:

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

Produktion:

Selvom dette fungerer i mange tilfælde, er listeforståelser bedre til læsbarhed og lettere at forstå af nogen, der ikke er programmøren til koden.

Tilføjelse af konditioneringsstoffer i listeforståelser

Du er fri til at bruge alle betingelser, der er nødvendige inden for en listeforståelse for at ændre den eksisterende liste. Lad os se på et eksempel, der bruger konditioner:

Kode:

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

Produktion:

Her er et andet eksempel:

Kode:

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

Produktion:

Brug af nestede sløjfer i listeforståelser

Når det er nødvendigt, kan vi bruge nestede sløjfer i listeforståelser, lad os se på, hvordan vi kan bruge indlejrede sløjfer på denne måde ved at finde transponering af en matrix:

Kode:

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)

Produktion:

Eksempler på listeforståelser Python

Nedenfor er eksemplerne på Listeforståelser Python:

Eksempel 1 - Fjernelse af vokaler fra en given sætning

Kode:

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))

Produktion:

Eksempel 2 - Kortlægning af landes navn med deres hovedstæder

Kode:

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)

Produktion:

Fordele ved listeforståelser Python

Man kan tænke, hvis Loops kan bruges til at gøre næsten alt, hvad listeforståelser gør, hvorfor bruge dem i første omgang? Nå, svaret er i hastighed og den tid det tager at få opgaven udført og den nødvendige hukommelse. Når der laves en listeforståelse, reducerer vi allerede 3 linjer med kode til en, og når den er færdig, er koden langt hurtigere, som når man står overfor en listeforståelse, allokerer python hukommelsen til listen først og tilføjer derefter elementer inde i den. også er det uden tvivl en mere elegant og sofistikeret måde at oprette lister på, der er baseret på allerede eksisterende lister.

Konklusion

Nu hvor vi har haft en vis erfaring med listeforståelser, er det let at forstå, hvordan disse giver os mulighed for at omdanne en liste til en ny liste. Disse har en simpel syntaks, der begrænser mængden af ​​arbejde, der er nødvendigt for at oprette en liste. I betragtning af syntaks og struktur for listeforståelser er dybest set som en sæt-builder-notation, disse bliver hurtigt en anden karakter for programmerere og sikre, at når koden først er overleveret til en anden person til at vedligeholde og udvide, vil det være let at forstå og arbejde med.

Anbefalet artikel

Dette er en guide til Listeforståelser Python. Her diskuterer vi listeforståelser og lambda-funktioner sammen med kodeimplementering og output. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Destructor i Python med fordele
  2. Gør mens du sløjfer i Python med flowdiagram
  3. String Array i Python med metoder
  4. Hvad er AWS Lambda-lag?
  5. PL / SQL-datatyper
  6. String Array i JavaScript
  7. Forskellige typer af SQL-data med eksempler
  8. Komplet guide til Array of String

Kategori: