Python Listförståelser förklaras med exempel

Listförståelse ger ett kortfattat sätt att skapa listor i Python. De är mer läsbara och ofta mer effektiva än att använda traditionella slingor. Den här artikeln kommer att utforska vad listförståelser är, hur de fungerar och ge exempel för att illustrera deras användning.

Vad är en listaförståelse?

En listförståelse är ett kompakt sätt att bearbeta alla eller delar av elementen i en samling och returnera en lista med resultaten. Syntaxen för en listförståelse är:

[expression for item in iterable if condition]

Här är uttryck det aktuella objektet i iterationen, men det är också resultatet, som du kan manipulera innan det slutar som ett listobjekt. iterable är samlingen du går igenom, och condition är ett valfritt filter som bara inkluderar objekt som uppfyller villkoret.

Grundläggande exempel

Skapa en lista med kvadrater

För att skapa en lista med kvadrater med tal från 0 till 9 kan du använda en listförståelse enligt följande:

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]

Filtrera objekt

Du kan också lägga till ett villkor för att filtrera objekt. För att till exempel bara få de jämna talen från listan:

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

Produktion:

[0, 4, 16, 36, 64]

Platta ut en lista med listor

Om du har en lista med listor och vill platta till den kan du använda en listförstå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]

Avancerade exempel

Tillämpa funktioner

Du kan tillämpa funktioner inom en listförståelse. Till exempel, för att konvertera en lista med strängar till versaler:

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

Produktion:

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

Kapslade förståelser

Listförståelser kan kapslas. Till exempel, för att skapa en lista med tupler (i, j) där i och j båda är element från två listor:

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

Slutsats

Listförståelse erbjuder ett kraftfullt och kortfattat sätt att generera listor i Python. De kan förenkla din kod och göra den mer läsbar genom att ersätta flera rader med loopkod med en enda rad förståelse. Öva på att använda listförståelse för att bli mer bekväm med deras syntax och kapacitet.