2016-12-09 3 views
0

Python noob hier. Ich versuche, eine Liste von Spielerwerten (HP, XPOS, YPOS usw.) in einem verschachtelten Wörterbuch für den einfachen Zugriff zu speichern. So ..Python - Neuer Schlüssel in verschachteltes Wörterbuch

players = {'John': {'HP': 10, 'xpos': 50, 'ypos': 46}} 
print players['John']['HP'] 

Das funktioniert, aber wie kann ich einen neuen Player hinzufügen/anhängen, wenn man später beitritt? Ich habe versucht:

players['Paul']['HP'] = 50 

und ...

players{'Paul': {'HP': 50, 'xpos': 10, 'ypos': 99}} 

und ...

players['Paul': {'HP': 50, 'xpos': 10, 'ypos': 99}] 

All die verschiedenen Fehler geben. Wie mache ich es?

Antwort

0

Die Daten für Paul sind ein Wörterbuch für sich. In diesem Fall können Sie es wie folgt tun:

players['Paul'] = {'HP': 50, 'xpos': 10, 'ypos': 99} 

Mit anderen Worten: Sie versuchen, einen neuen Spieler einfügen Paul in den Haupt players Wörterbuch genannt, die ein neuer Schlüssel wird. Dieser Schlüssel ist selbst als Wert einem anderen Wörterbuch zugeordnet.

+0

Vielen Dank! Will als Antwort akzeptieren, wenn ich kann – herewego

0

Sie müssen den Schlüssel des Werts angeben, den Sie hinzufügen oder aktualisieren möchten. Zum Beispiel

players['John']["example"] = 5 

Wird {"example":5} in John hinzufügen. Sie können dies mit anderen Teilen des Diktats und mit mehr Werten tun.

+0

Dies ist nicht die Frage. Es war nicht so, John zusätzliche Daten hinzuzufügen, sondern einen neuen Player und die zugehörigen Daten in das Hauptwörterbuch von Spielern aufzunehmen. – roganjosh

+0

ive erklärte, Sie können es mit anderen Teilen des Diktats tun :) –

0
# i prefer the keyword solution 
players['Paul'] = dict(HP = 000, xpos = 000, ypos= 000) 
players['Paul']['HP'] = 50 
print players['Paul']['HP'] 
# 50 

# here done by zip: 
# basic example 
_keys = ['HP', 'xpos', 'ypos'] 
_values = [50, 60, 70] 
players['Paul'] = dict(zip(_keys, _values)) 
print players['Paul']['HP'] 
# 50 
Verwandte Themen