Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Unpacking Dictionaries with ** | Pakkaaminen ja purkaminen Pythonissa
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa

bookUnpacking Dictionaries with **

Pyyhkäise näyttääksesi valikon

Työskenneltäessä sanakirjojen kanssa Pythonissa **-operaattori tarjoaa tiiviin ja tehokkaan tavan purkaa niiden sisältö. Sanakirjan purkaminen **:lla mahdollistaa sanakirjan avainten ja arvojen välittämisen nimettyinä argumentteina funktioille tai useiden sanakirjojen yhdistämisen yhdeksi sanakirjaksi. Tämä tekniikka on erityisen hyödyllinen, kun halutaan kirjoittaa joustavaa ja uudelleenkäytettävää koodia, joka pystyy käsittelemään vaihtelevia nimettyjen parametrien joukkoja.

**-operaattori ottaa sanakirjan ja laajentaa sen avain-arvo-parit erillisiksi avainsana-argumenteiksi. Tätä käytetään yleisesti funktioita kutsuttaessa, kun ne hyväksyvät avainsana-argumentteja, jolloin sanakirja voidaan välittää suoraan ilman, että jokainen argumentti määritellään erikseen. Toinen käytännöllinen käyttötapa on yhdistää kaksi tai useampia sanakirjoja uudeksi sanakirjaksi, jossa kaikki avain-arvo-parit yhdistetään yhteen sanakirjaan.

12345
def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
copy

Tämä koodi havainnollistaa sanakirjan purkamista **-operaattorilla. Kun sijoitat ** sanakirjan eteen funktiokutsussa, Python "avaa" avain-arvo-parit ja välittää ne yksittäisinä avainsana-argumentteina. Tässä esimerkissä print_person(**person_info) on toiminnallisesti sama kuin print_person(name="Alice", age=28). Jotta tämä toimisi oikein, sanakirjan avainten täytyy vastata täsmälleen funktion määrittelyn parametrien nimiä.

12345
defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
copy

Tässä nähdään sanakirjojen yhdistäminen. Kun asetetaan ** uuden sanakirjan literaalin sisään, Python laajentaa sekä defaults- että overrides-sanakirjojen avain-arvoparit yhdeksi olioksi.

Kun avaimet menevät päällekkäin – kuten "size" tässä esimerkissä – myöhemmin määritelty sanakirja menee etusijalle. Tässä overrides-sanakirjan arvo "large" korvaa defaults-sanakirjan arvon "medium", jolloin yhdistetty sanakirja sisältää kaikki uniikit avaimet ja priorisoi uusimmat arvot.

1. Mikä on tulos, kun käytetään ** sanakirjan kanssa funktiokutsussa?

2. Millä menetelmällä kaksi sanakirjaa yhdistetään purkamalla Pythonissa?

question mark

Mikä on tulos, kun käytetään ** sanakirjan kanssa funktiokutsussa?

Valitse oikea vastaus

question mark

Millä menetelmällä kaksi sanakirjaa yhdistetään purkamalla Pythonissa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 3
some-alt