Python-listeforståelser forklaret med eksempler

Listeforståelser giver en kortfattet måde at oprette lister i Python. De er mere læsbare og ofte mere effektive end at bruge traditionelle loops. Denne artikel vil undersøge, hvad listeforståelser er, hvordan de fungerer, og give eksempler til at illustrere deres brug.

Hvad er en listeforståelse?

En listeforståelse er en kompakt måde at behandle alle eller dele af elementerne i en samling og returnere en liste med resultaterne. Syntaksen for en listeforståelse er:

[expression for item in iterable if condition]

Her er udtryk det aktuelle element i iterationen, men det er også resultatet, som du kan manipulere, før det ender som et listeelement. iterable er den samling, du går igennem, og condition er et valgfrit filter, der kun inkluderer elementer, der opfylder betingelsen.

Grundlæggende eksempler

Oprettelse af en liste over kvadrater

For at oprette en liste over kvadrater af tal fra 0 til 9, kan du bruge 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)

Produktion:

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

Filtrering af elementer

Du kan også tilføje en betingelse for at filtrere elementer. For eksempel, for kun at få de lige tal fra listen:

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

Produktion:

[0, 4, 16, 36, 64]

Udjævning af en liste over lister

Hvis du har en liste over lister og ønsker at udjævne den, kan du bruge 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)

Produktion:

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

Avancerede eksempler

Anvendelse af funktioner

Du kan anvende funktioner inden for en listeforståelse. For eksempel for at konvertere en liste over strenge til store bogstaver:

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

Produktion:

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

Indlejrede forståelser

Listeforståelser kan indlejres. For eksempel for at oprette en liste over tuples (i, j), hvor 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)

Produktion:

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

Konklusion

Listeforståelser tilbyder en kraftfuld og kortfattet måde at generere lister i Python. De kan forenkle din kode og gøre den mere læsbar ved at erstatte flere linjer loop-kode med en enkelt linje med forståelser. Øv dig i at bruge listeforståelser for at blive mere fortrolig med deres syntaks og muligheder.