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.