Seite 1 von 1

Dictionaries zusammenführen, Begriffserklärung

Verfasst: Dienstag 21. September 2010, 13:08
von gooogle
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

Re: Dictionaries zusammenführen, Begriffserklärung

Verfasst: Dienstag 21. September 2010, 13:34
von 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()))

Re: Dictionaries zusammenführen, Begriffserklärung

Verfasst: Mittwoch 22. September 2010, 06:57
von gooogle
ahh, das erklärts. danke