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.