Python Academy · leksjon

Nestede lister og iterasjon

Arbeid med nestede lister og iterer effektivt med for-løkker.

Leksjon 4 av 414 trinn

Nestede lister og iterasjon er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Innledning

Lister kan inneholde andre lister og dermed danne flerdimensjonale strukturer. Det er viktig å mestre nøstede løkker for å kunne arbeide med rutenett og matriser.

Nøstet listestruktur

matrix = [[1,2,3],[4,5,6],[7,8,9]] er et 3×3-rutenett. matrix[1][2] henter rad 1, kolonne 2 – altså 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

Iterere gjennom rader

for row in matrix: print(row) skriver ut hver underliste. row er selv en liste som kan indekseres.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

Nøstede for-løkker

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

Flate ut en nøstet liste

[x for row in matrix for x in row] flater ut ett nivå. Dette er en nøstet list comprehension.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Bygge et rutenett

Opprett et N×M-rutenett: grid = [[0]*M for _ in range(N)] Bruk en list comprehension, IKKE [[0]*M]*N, som oppretter aliaserte rader.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

Fellen med aliaserte rader

grid = [[0]*3]*3 oppretter tre referanser til samme rad. Hvis én rad endres, endres alle. Bruk alltid en comprehension.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() for parallell iterasjon

for a, b in zip(list1, list2) itererer gjennom to lister parallelt. zip() stopper ved den korteste listen.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() med nøstede lister

for i, row in enumerate(matrix): for j, val in enumerate(row): gir både indekser og verdier.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

Sortere en liste med lister

sorted(data, key=lambda x: x[1]) sorterer etter det andre elementet i hver underliste.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

Transponere en matrise

transposed = list(zip(*matrix)) transponerer rader til kolonner. * pakker ut den ytre listen som argumenter til zip.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

Hurtigsjekk

Hva er den riktige måten å opprette et 3×3-rutenett fylt med nuller på, slik at fellen med aliaserte rader unngås?

Oppsummering

Nøstede lister: hent elementer med [row][col], og iterer med nøstede for-løkker. Bruk en comprehension for å bygge rutenett, zip() for parallell iterasjon og zip(*matrix) for transponering.

Fortsett

Godt jobbet! Gå videre til neste leksjon for å fortsette å utvikle ferdighetene.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Nestede lister og iterasjon» gratis?

Ja – hele teksten i «Nestede lister og iterasjon» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Nestede lister og iterasjon»?

Arbeid med nestede lister og iterer effektivt med for-løkker. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Nestede lister og iterasjon»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Opprette og få tilgang til lister
  2. Endre lister
  3. Tupler og uforanderlighet
  4. Nestede lister og iterasjon
← Tilbake til Python Academy