Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udpakning af Ordbøger med ** | Pakning og Udpakning i Python
Funktionelle Programmeringskoncepter i Python

bookUdpakning 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.

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

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.

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

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?

question mark

Hvad er resultatet af at bruge ** på en ordbog i et funktionskald?

Vælg det korrekte svar

question mark

Hvilken metode kombinerer to dictionaries ved hjælp af unpacking i Python?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 3
some-alt