Python Academy · Lektion

Nästlade listor och iteration

Arbeta med nästlade listor och iterera effektivt med for-loopar.

Lektion 4 av 414 steg

Nästlade listor och iteration är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Introduktion

Listor kan innehålla andra listor och därmed skapa flerdimensionella strukturer. Att behärska nästlade iterationer är viktigt för rutnät och matriser.

Nästlad liststruktur

matrix = [[1,2,3],[4,5,6],[7,8,9]] är ett rutnät med storleken 3x3. matrix[1][2] hämtar rad 1, kolumn 2 – vilket är 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

Iterera över rader

for row in matrix: print(row) skriver ut varje underlista. row är själv en lista som Ni kan indexera.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

Nästlade for-loopar

for row in matrix: for val in row: print(val) skriver ut varje enskilt element.
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

Platta ut en nästlad lista

[x for row in matrix for x in row] plattar ut en nivå. Detta är en nästlad list comprehension.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Skapa ett rutnät

Skapa ett N×M-rutnät: grid = [[0]*M for _ in range(N)] Använd en list comprehension, INTE [[0]*M]*N, eftersom det skapar aliaserade rader.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

Fällan med aliaserade rader

grid = [[0]*3]*3 skapar tre referenser till samma rad. Om en ändras ändras alla. Använd alltid en comprehension.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() för parallell iteration

for a, b in zip(list1, list2) itererar över två listor parallellt. zip() slutar vid den kortare listan.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() med nästlade listor

for i, row in enumerate(matrix): for j, val in enumerate(row): ger Er både index och värden.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

Sortera en lista med listor

sorted(data, key=lambda x: x[1]) sorterar efter det andra elementet i varje underlista.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

Transponera en matris

transposed = list(zip(*matrix)) transponerar rader till kolumner. * packar upp den yttre listan som argument till zip.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

Snabb kontroll

Vilket är det korrekta sättet att skapa ett 3x3-rutnät fyllt med nollor för att undvika fällan med aliaserade rader?

Sammanfattning

Nästlade listor: hämta värden med [row][col] och iterera med nästlade for-loopar. Använd en comprehension för att skapa rutnät. Använd zip() för parallell iteration och zip(*matrix) för transponering.

Fortsätt

Bra arbete! Gå vidare till nästa lektion för att fortsätta utveckla Era färdigheter.
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Nästlade listor och iteration” gratis?

Ja – hela texten till ”Nästlade listor och iteration” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Nästlade listor och iteration”?

Arbeta med nästlade listor och iterera effektivt med for-loopar. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Nästlade listor och iteration”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skapa och komma åt listor
  2. Ändra listor
  3. Tupler och oföränderlighet
  4. Nästlade listor och iteration
← Tillbaka till Python Academy