Python Academy · Oppitunti

Listakonstruktiot

Luokaa listoja tiiviisti konstruktiolausekkeen syntaksilla ja ehdoilla.

Oppitunti 1/414 vaihetta

Listakonstruktiot on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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

List comprehension -rakenteilla luodaan iteroitavista kohteista uusia listoja yhtenä helposti luettavana lausekkeena. Ne korvaavat yleisiä for-silmukkamalleja.

Perussyntaksi

[expression for item in iterable] on perusmuoto. [x*2 for x in range(5)] tuottaa arvon [0,2,4,6,8].
doubled = [x*2 for x in range(5)]
print(doubled)

Ehdon kanssa

[x for x in range(10) if x%2==0] suodattaa parilliset luvut. if-lauseke tulee for-lausekkeen jälkeen.
evens = [x for x in range(10) if x % 2 == 0]
print(evens)

Merkkijonojen muuntaminen

[word.upper() for word in words] kutsuu upper()-metodia jokaiselle merkkijonolle. Rakenne toimii minkä tahansa iteroitavan kohteen kanssa.
words = ['hello', 'world']
print([w.upper() for w in words])

Sisäkkäinen comprehension

[x for row in matrix for x in row] on litistävä sisäkkäinen comprehension (luetaan vasemmalta oikealle, ulompi silmukka ensin).
matrix = [[1,2,3],[4,5,6]]
flat = [x for row in matrix for x in row]
print(flat)

if/else-lauseke

[x if x>0 else 0 for x in lst] käyttää ternäärioperaattoria lausekeosassa (ennen for-lauseketta), ei sen jälkeen.
lst = [-1, 2, -3, 4]
clipped = [x if x > 0 else 0 for x in lst]
print(clipped)

Comprehension vai map/filter

[f(x) for x in it if cond(x)] vastaa rakennetta list(map(f, filter(cond, it))), mutta on luettavampi.
nums = range(10)
result = [x**2 for x in nums if x%2==0]
print(result)

Litistäminen comprehension-rakenteella

Kun sisäkkäisyyttä on vähintään kaksi tasoa, comprehension-rakenteella voi litistää rakenteen: [[1,2],[3,4]] → [1,2,3,4].
nested = [[1,2],[3,4],[5]]
flat = [x for sub in nested for x in sub]
print(flat)

Comprehension ja enumerate()

[(i, x) for i, x in enumerate(lst)] tuottaa listan indeksi-arvopareja.
colors = ['red', 'green', 'blue']
indexed = [(i, c) for i, c in enumerate(colors)]
print(indexed)

Comprehension ja zip()

[a+b for a, b in zip(lst1, lst2)] laskee yhteen kahden listan vastaavat alkiot.
a = [1, 2, 3]
b = [10, 20, 30]
print([x+y for x,y in zip(a,b)])

Milloin comprehension-rakenteita EI pidä käyttää

Jos logiikka on monimutkaista tai tarvitsee sivuvaikutuksia, käyttäkää tavallista for-silmukkaa. Comprehension-rakenteiden tulisi pysyä yksirivisinä.
# Too complex for comprehension:
result = []
for x in range(10):
    if x > 5:
        result.append(x * x)
print(result)

Pikatarkistus

Kun list comprehension sisältää sekä ehdon että ternäärioperaattorin, mihin ternäärioperaattori sijoitetaan?

Kertaus

List comprehension: [expr for x in it if cond]. Ternäärioperaattori lausekkeessa: [x if cond else y for x in it]. Käyttäkää näitä selkeisiin, litteisiin muunnoksiin.

Jatkakaa eteenpäin

Erinomaista! Siirtykää seuraavaan oppituntiin syventääksenne taitojanne.
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 ”Listakonstruktiot” ilmainen?

Kyllä – oppitunnin ”Listakonstruktiot” 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 ”Listakonstruktiot”?

Luokaa listoja tiiviisti konstruktiolausekkeen syntaksilla ja ehdoilla. 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 1/4.

Kuinka kauan ”Listakonstruktiot”-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. Listakonstruktiot
  2. Joukko- ja sanakirjakonstruktiot
  3. Generaattorilausekkeet
  4. yield-avainsana
← Takaisin: Python Academy