Dictionaries zusammenführen, Begriffserklärung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

Hallo

Ich habe zwei Dicts. die ich zusammenführen möchte. Habe auch eine methode gefunden, die das problemlos macht,
nur ich verstehe nicht so ganz was da geschieht:

Code: Alles auswählen

x={'b':8}
y={'a':5}
dict(x, **y)
Kann mir jemand erklären was da genau geschieht. Was hat es mit dem **y aufsich?
Konnte zu dem Parameter im Net nichts finden

Grüsse
fff gh
BlackJack

Also in der Doku findet sich da etwas unter Calls. Der Ausdruck nach den ``**`` muss eine Abbildung sein, also zum Beispiel ein `dict`, und die Schlüssel und Werte werden als Schlüsselwort-Argumente beim Funktionsaufruf behandelt.

Code: Alles auswählen

f(answer=42, spam='eggs')
# <=>
d = {'answer': 42, 'spam': 'eggs'}
f(**d)
Wobei ich die Methode etwas "magisch" finde. Ich fänd' folgende Varianten lesbarer:

Code: Alles auswählen

c = dict(a)
c.update(b)
# oder
c = dict(itertools.chain(a.iteritems(), b.iteritems()))
gooogle
User
Beiträge: 66
Registriert: Freitag 15. Mai 2009, 19:13
Wohnort: burghausen

ahh, das erklärts. danke
fff gh
Antworten