Udpakning af Ordbøger med **
Stryg for at vise menuen
Ved arbejde med ordbøger i Python giver **-operatoren en kortfattet og effektiv måde at pakke deres indhold ud på. Udpakning med ** gør det muligt at sende ordbøgens elementer som navngivne argumenter til funktioner eller at sammenflette flere ordbøger. Denne teknik er især nyttig, når der ønskes fleksibel og genanvendelig kode, der kan håndtere varierende sæt af navngivne parametre.
**-operatoren tager en ordbog og udvider dens nøgle-værdi-par til separate nøgleordsargumenter. Dette bruges ofte ved kald af funktioner, der accepterer nøgleordsargumenter, så en ordbog kan sendes direkte i stedet for at angive hvert argument manuelt. En anden praktisk anvendelse er sammenfletning af to eller flere ordbøger til en ny, hvor alle nøgle-værdi-par kombineres i én ordbog.
12345def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
Denne kode demonstrerer ordbogsudpakning ved brug af **-operatoren. Når ** placeres foran en ordbog i et funktionskald, "udpakker" Python nøgle-værdi-parrene og sender dem som individuelle nøgleordsargumenter. I dette eksempel er print_person(**person_info) funktionelt identisk med at skrive print_person(name="Alice", age=28). For at dette fungerer korrekt, skal ordbogens nøgler præcist matche parameternavnene defineret i funktionssignaturen.
12345defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
Her ses sammenfletning af ordbøger. Ved at placere ** inde i et nyt ordbogsliteral udvider Python nøgle-værdi-parrene fra både defaults og overrides til et enkelt objekt.
Når nøgler overlapper – som "size" i dette eksempel – har ordbogen, der vises sidst i rækkefølgen, forrang. Her overskriver værdien "large" fra overrides "medium" fra defaults, hvilket resulterer i en sammenflettet ordbog, der kombinerer alle unikke nøgler og prioriterer de nyeste værdier.
1. Hvad er resultatet af at bruge ** på en ordbog i et funktionskald?
2. Hvilken metode kombinerer to dictionaries ved hjælp af unpacking i Python?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat