Python-listeforståelser forklart med eksempler

Listeforståelser gir en kortfattet måte å lage lister i Python. De er mer lesbare og ofte mer effektive enn å bruke tradisjonelle løkker. Denne artikkelen vil utforske hva listeforståelser er, hvordan de fungerer, og gi eksempler for å illustrere bruken.

Hva er en listeforståelse?

En listeforståelse er en kompakt måte å behandle alle eller deler av elementene i en samling og returnere en liste med resultatene. Syntaksen for en listeforståelse er:

[expression for item in iterable if condition]

Her er uttrykk gjeldende element i iterasjonen, men det er også resultatet, som du kan manipulere før det ender opp som et listeelement. iterable er samlingen du går gjennom, og condition er et valgfritt filter som bare inkluderer elementer som tilfredsstiller betingelsen.

Grunnleggende eksempler

Opprette en liste over kvadrater

For å lage en liste over kvadrater med tall fra 0 til 9, kan du bruke en listeforståelse som følger:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)

Produksjon:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Filtrering av elementer

Du kan også legge til en betingelse for å filtrere elementer. For eksempel, for å få bare partall fra listen:

even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)

Produksjon:

[0, 4, 16, 36, 64]

Flate ut en liste over lister

Hvis du har en liste med lister og ønsker å flate den ut, kan du bruke en listeforståelse:

list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)

Produksjon:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Avanserte eksempler

Bruke funksjoner

Du kan bruke funksjoner innenfor en listeforståelse. For eksempel, for å konvertere en liste med strenger til store bokstaver:

words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)

Produksjon:

['HELLO', 'WORLD', 'PYTHON']

Nestede forståelser

Listeforståelser kan nestes. For eksempel, for å lage en liste over tuples (i, j) der i og j begge er elementer fra to lister:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)

Produksjon:

[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

Konklusjon

Listeforståelser tilbyr en kraftig og kortfattet måte å generere lister i Python. De kan forenkle koden din og gjøre den mer lesbar ved å erstatte flere linjer med sløyfekode med en enkelt linje med forståelse. Øv deg på å bruke listeforståelse for å bli mer komfortabel med deres syntaks og evner.