Introduksjon til listeforståelser Python

Forståelser gir en kort og enkel måte å konstruere nye sekvenser ved å bruke allerede definerte sekvenser i Python. Disse sekvensene kan være lister, sett, ordbøker, etc. Listeforståelse er en av de verdifulle egenskapene til Python. I et nøtteskall, tilbyr List Comprehensions en måte å lage nye lister basert på eksisterende lister. Listekompetisjoner er med andre ord en enkel måte å lage en liste basert på noen iterable. Her er en iterable alt som kan brukes til å sløyfe over. Listeforståelser gjør det mulig å bruke en alternativ syntaks for å lage lister og andre sekvensielle datatyper i python. Vi vil se på hvordan disse er nyttige senere. Det er tre komponenter i List Comprehension, disse er:

  • Utgangsuttrykk: Denne er valgfri og kan ignoreres.
  • Iterable.
  • En variabel som representerer medlemmer av iterable, kalles den ofte Iterator Variable.

Syntaks og eksempler:

I python kan vi opprette listeforståelser ved å bruke følgende syntaks:

list_variable = (x for x in iterable)

Som du kan se i Listekompetisjoner, tilordnes en liste til en variabel. La oss ta en titt på et eksempel, først kan vi vurdere en metode for å finne kvadratet til et tall ved hjelp av en løkke:

Kode:

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

Produksjon:

La oss vurdere å gjøre det samme, men bruk listekomprehensjoner i stedet for en sløyfe:

Kode:

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

Produksjon:

Her kan du se at firkantede parenteser “()” brukes for å betegne at utdataene til uttrykk i dem er en liste.

Liste over forståelser og Lambda-funksjoner

Du må huske på at listeforståelser ikke er den eneste måten å lage lister på, Python har mange innebygde funksjoner og lambda-funksjoner som kan brukes, for eksempel:

Kode:

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

Produksjon:

Selv om dette fungerer i mange tilfeller, er listeforståelser bedre på lesbarhet og enklere å forstå av noen som ikke er programmerer av koden.

Legge til betingelser i listeforståelser

Du står fritt til å bruke betingelser som trengs i en listeforståelse for å endre den eksisterende listen. La oss se på et eksempel som bruker conditionals:

Kode:

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

Produksjon:

Her er et annet eksempel:

Kode:

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

Produksjon:

Bruke nestede løkker i listeforståelser

Når det er behov, kan vi bruke Nested Loops i listeforståelser, la oss se på hvordan vi kan bruke nestede løkker på denne måten ved å finne transponering av en matrise:

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)

Produksjon:

Eksempler på listeforståelser Python

Nedenfor er eksemplene på Listekomprehensjoner Python:

Eksempel 1 - Fjerne vokaler fra en gitt mening

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

Produksjon:

Eksempel nr. 2 - Kartlegge navn på land med hovedsteder

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)

Produksjon:

Fordeler med listeforståelser Python

Man kan tenke at hvis Loops kan brukes til å gjøre nesten alt listeforståelser gjør, hvorfor bruke dem i utgangspunktet? Vel, svaret er i fart og tiden det tar å få oppgaven gjort og mengden minne som trengs. Når det er gjort en listeforståelse, reduserer vi allerede tre linjer med kode til en, og når den er gjort, er koden langt raskere som når du står overfor en listeforståelse, allokerer python minnet til listen først og legger deretter til elementer i den. også er det uten tvil en mer elegant og sofistikert måte å lage lister som er basert på eksisterende lister.

Konklusjon

Nå som vi har hatt litt erfaring med listeforståelser, er det lett å forstå hvordan disse gjør det mulig for oss å forvandle en liste til en ny liste. Disse har en enkel syntaks som begrenser mengden arbeid som trengs for å lage en liste. Tatt i betraktning syntaks og struktur for listeforståelser er i utgangspunktet som en set-builder-notasjon, blir disse andre natur for programmerere raskt og sørger for at når koden er overlevert til en annen person å vedlikeholde og utvide, vil det være lett å forstå og jobbe med.

Anbefalt artikkel

Dette er en guide til Listeforståelser Python. Her diskuterer vi listeforståelser og lambda-funksjoner sammen med Code Implementation and Output. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Destruktor i Python med fordeler
  2. Gjør mens du løkker i Python med flytskjema
  3. String Array i Python With Methods
  4. Hva er AWS Lambda Layers?
  5. PL / SQL-datatyper
  6. String Array i JavaScript
  7. Ulike typer SQL-data med eksempler
  8. Komplett guide til Array of String