2017-06-27 2 views
0

Ich habe ein eingebettetes Wörterbuch erstellt als:Wörterbuch hinzufügen, um eingebettete Wörterbuch

all_stats = {} 
all_stats['user1'] = {} 

ich zum ersten Mal mit einen Eintrag hinzufügen:

all_stats['stat0'] = 1 

ich dann ein Wörterbuch der jede weitere Einträge haben, die hinzugefügt werden zu all_stats für den Benutzer:

user_stats = {'stat1':5, 'stat2':3} 

Wie kann ich diese auf den integrierten Wörterbuch hinzuzufügen, so Ich am Ende mit:

print(all_stats) 
{'user1': {'stat0:1', 'stat1':5, 'stat2':3}} 

Ich habe versucht:

all_stats['user1'].update(k=v for k,v in user_stats.items()) 

aber dies wirft ein SyntaxError

+1

Der Syntaxfehler, dem du gegenüberstehst, ist 'k = v', es sollte' k: v' sein. Sie müssen dies jedoch nicht tun. – idjaw

Antwort

3

Sie die for-Schleife nicht brauchen; Sie können direkt ein Wörterbuch mit einem anderen Wörterbuch aktualisieren:

all_stats['user1']['stat0'] = 1  
all_stats['user1'].update(user_stats) 

all_stats 
# {'user1': {'stat0': 1, 'stat1': 5, 'stat2': 3}} 

Was die Syntax Error, wie @idjaw kommentiert, Sie nicht k=v in einem Verständnis der Art und Weise verwenden können, die Sie verwendet haben; Etwas ähnliches, aber akzeptables wäre:

+1

Danke! Das war einfach! –

+0

Ich nehme nicht an, dass es einen Vorteil für die Listenverständnisversion gibt, oder? –

+0

Ich glaube nicht. Die Update-Methode wurde entwickelt, um ein Wörterbuch zu akzeptieren. Aus der Dokumentation: * Update D von dict/iterable E und F. *. Also ich denke, es sollte bevorzugt werden, es sei denn, es kann nicht erfüllen, was Sie brauchen. Mit dem Wörterbuch-Verständnis erstellen Sie das Wörterbuch tatsächlich einmal neu. – Psidom

Verwandte Themen