Python Academy · Oppitunti

Joukko- ja sanakirjakonstruktiot

Soveltakaa konstruktiomalleja joukkoihin ja sanakirjoihin.

Oppitunti 2/414 vaihetta

Joukko- ja sanakirjakonstruktiot on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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

Sama comprehension-syntaksi toimii joukoille ja sanakirjoille, jolloin tuloksena saadaan vastaavasti yksilöllisiä alkioita ja avain-arvo-kuvauksia.

Joukon comprehension-syntaksi

{expression for item in iterable} käyttää aaltosulkeita ilman kaksoispistettä. Tulos on joukko: järjestämätön ja yksilöllisiä alkioita sisältävä.
unique_lens = {len(w) for w in ['apple','banana','fig']}
print(unique_lens)

Kaksoiskappaleiden poistaminen joukon comprehension-rakenteella

Kaikki toistuvat lausekkeet poistetaan automaattisesti ilman ilmoitusta. {x%3 for x in range(9)} tuottaa joukon {0,1,2}.
mods = {x % 3 for x in range(9)}
print(mods)

Joukon comprehension ehdon kanssa

{x for x in range(20) if x%2==0 and x%3==0} tuottaa luvut, jotka ovat jaollisia sekä 2:lla että 3:lla.
print({x for x in range(20) if x%2==0 and x%3==0})

Sanakirjan comprehension-syntaksi

{key_expr: val_expr for item in iterable} käyttää muotoa avain:arvo ennen for-lauseketta. Se luo sanakirjan.
squares = {x: x**2 for x in range(5)}
print(squares)

Sanakirjan comprehension ehdon kanssa

{k: v for k, v in d.items() if v > 0} suodattaa sanakirjasta vain positiiviset arvot.
d = {'a': 1, 'b': -2, 'c': 3}
pos = {k: v for k, v in d.items() if v > 0}
print(pos)

Sanakirjan kääntäminen

{v: k for k, v in d.items()} vaihtaa avaimet ja arvot keskenään. Tämä edellyttää, että kaikki arvot ovat yksilöllisiä ja hajautettavia.
d = {'a': 1, 'b': 2, 'c': 3}
print({v: k for k, v in d.items()})

Ryhmittely sanakirjan comprehension-rakenteella

{letter: [w for w in words if w[0]==letter] for letter in 'abc'} ryhmittelee sanat ensimmäisen kirjaimen mukaan.
words = ['apple','ant','banana','cherry','cat']
grouped = {l: [w for w in words if w.startswith(l)] for l in 'abc'}
print(grouped)

Kahden listan yhdistäminen sanakirjaksi

{k: v for k, v in zip(keys, vals)} on selkeämpi kuin dict(zip(keys, vals)), kun arvoja täytyy muuntaa.
keys = ['x', 'y', 'z']
vals = [1, 4, 9]
print({k: v**0.5 for k, v in zip(keys, vals)})

Sisäkkäinen sanakirjan comprehension

{i: {j: i*j for j in range(3)} for i in range(3)} luo kertotaulun sisäkkäisinä sanakirjoina.
table = {i: {j: i*j for j in range(3)} for i in range(3)}
print(table)

Milloin kutakin käytetään

Käyttäkää joukon comprehension-rakennetta, kun tarvitsette yksilöllisiä arvoja. Käyttäkää sanakirjaa, kun tarvitsette avain-arvo-kuvauksen. Käyttäkää listaa, kun järjestyksellä on merkitystä.
words = ['hello', 'world', 'hello']
unique = {w for w in words}
lengths = {w: len(w) for w in unique}
print(lengths)

Pikatarkistus

Mikä on joukon ja sanakirjan comprehension-rakenteiden keskeinen syntaktinen ero?

Kertaus

Joukon comprehension: {expr for x in it}. Sanakirjan comprehension: {k: v for x in it}. Molemmat tukevat if-suodatusta. Sanakirja edellyttää yksilöllisiä ja hajautettavia avaimia.

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 ”Joukko- ja sanakirjakonstruktiot” ilmainen?

Kyllä – oppitunnin ”Joukko- ja sanakirjakonstruktiot” 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 ”Joukko- ja sanakirjakonstruktiot”?

Soveltakaa konstruktiomalleja joukkoihin ja sanakirjoihin. 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 2/4.

Kuinka kauan ”Joukko- ja sanakirjakonstruktiot”-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