Python Academy · Oppitunti

Sisäkkäiset listat ja iterointi

Käsitelkää sisäkkäisiä listoja ja iteroikaa tehokkaasti for-silmukoilla.

Oppitunti 4/414 vaihetta

Sisäkkäiset listat ja iterointi on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Johdanto

Listat voivat sisältää muita listoja, jolloin syntyy moniulotteisia rakenteita. Sisäkkäisten iteraatioiden hallitseminen on tärkeää ruudukkojen ja matriisien käsittelyssä.

Sisäkkäisen listan rakenne

matrix = [[1,2,3],[4,5,6],[7,8,9]] on 3x3-ruudukko. matrix[1][2] käsittelee riviä 1 ja saraketta 2 — kyseessä on arvo 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

Rivien läpikäynti

for row in matrix: print(row) tulostaa jokaisen alilistan. row on itsessään lista, jonka alkioihin voi viitata indeksillä.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

Sisäkkäiset for-silmukat

for row in matrix: for val in row: print(val) tulostaa jokaisen yksittäisen alkion.
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

Sisäkkäisen listan litistäminen

[x for row in matrix for x in row] litistää yhden tason. Tämä on sisäkkäinen listan muodostuslauseke.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Ruudukon rakentaminen

Luokaa N×M-ruudukko: grid = [[0]*M for _ in range(N)] Käyttäkää listan muodostuslauseketta, ÄLKÄÄ [[0]*M]*N-rakennetta, joka luo samoihin riveihin viittaavat aliakset.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

Samaan riviin viittaavien rivien ansa

grid = [[0]*3]*3 luo kolme viittausta samaan riviin. Yhden muuttaminen muuttaa niitä kaikkia. Käyttäkää aina muodostuslauseketta.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() rinnakkaiseen läpikäyntiin

for a, b in zip(list1, list2) käy kaksi listaa läpi rinnakkain. zip() lopettaa lyhyemmän listan loppuessa.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() sisäkkäisten listojen kanssa

for i, row in enumerate(matrix): for j, val in enumerate(row): antaa käyttöön sekä indeksit että arvot.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

Listojen listan järjestäminen

sorted(data, key=lambda x: x[1]) järjestää alilistat niiden toisen alkion perusteella.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

Matriisin transponointi

transposed = list(zip(*matrix)) transponoi rivit sarakkeiksi. * purkaa ulomman listan zip-funktion argumenteiksi.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

Pikatarkistus

Mikä on oikea tapa luoda nollilla täytetty 3x3-ruudukko, jotta samoihin riveihin viittaavien rivien ansa vältetään?

Kertaus

Sisäkkäisten listojen alkioihin viitataan muodolla [row][col], ja niitä käydään läpi sisäkkäisillä for-silmukoilla. Käyttäkää muodostuslauseketta ruudukkojen rakentamiseen, zip():iä rinnakkaiseen läpikäyntiin ja zip(*matrix)-rakennetta transponointiin.

Jatkakaa

Hienosti tehty! Siirtykää seuraavaan oppituntiin jatkaaksenne taitojenne kehittämistä.
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Sisäkkäiset listat ja iterointi” ilmainen?

Kyllä – oppitunnin ”Sisäkkäiset listat ja iterointi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Sisäkkäiset listat ja iterointi”?

Käsitelkää sisäkkäisiä listoja ja iteroikaa tehokkaasti for-silmukoilla. Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Sisäkkäiset listat ja iterointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Listojen luominen ja käyttäminen
  2. Listojen muokkaaminen
  3. Monikot ja muuttumattomuus
  4. Sisäkkäiset listat ja iterointi
← Takaisin: Python Academy