Dies ist das Wörterbuch
cars = {'A':{'speed':70,
'color':2},
'B':{'speed':60,
'color':3}}
Verwenden Sie dies for loop
for keys,values in cars.items():
print(keys)
print(values)
Es wird Folgendes gedruckt:
B
{'color': 3, 'speed': 60}
A
{'color': 2, 'speed': 70}
Aber ich möchte, dass das Programm es so druckt:
B
color : 3
speed : 60
A
color : 2
speed : 70
Ich habe gerade angefangen, Wörterbücher zu lernen, daher bin ich mir nicht sicher, wie ich das machen soll.
python
printing
dictionary
Jett
quelle
quelle
cars = {1:4, 2:5}
danncars[x]
eine Ganzzahl dem Schlüssel zugeordnet istx
und keine Menge dem Schlüssel zugeordnet istx
. In diesem Fall müssen Sie diefor y in cars[x]:
Zeile nicht verwenden , da Sie nur einen Wert abrufen, es sei denn, Sie verwenden eine Liste oder einen Satz von Ganzzahlen, dann sollte es funktionieren. Entschuldigung, es sind einige Monate vergangen, daher kann ich mich nicht vollständig erinnern, wie ich zu dem Schluss meines vorherigen Kommentars gekommen bin. Sie könnten mir Ihren Code schicken und ich kann sehen, ob ich Hilfe brauche.Sie können das
json
Modul dafür verwenden. Diedumps
Funktion in diesem Modul konvertiert ein JSON-Objekt in eine ordnungsgemäß formatierte Zeichenfolge, die Sie dann drucken können.Die Ausgabe sieht aus wie
In der Dokumentation werden auch einige nützliche Optionen für diese Methode angegeben.
quelle
print(json.dumps(cars, indent=4, ensure_ascii=False))
weil sonst Nicht-ASCII-Zeichen nicht lesbar sind.Eine allgemeinere Lösung, die willkürlich tief verschachtelte Dikte und Listen behandelt, wäre:
Dies erzeugt die Ausgabe:
Ich hatte ein ähnliches Bedürfnis und entwickelte eine robustere Funktion als Übung für mich. Ich füge es hier ein, falls es für einen anderen von Wert sein kann. Beim Ausführen von nosetest fand ich es auch hilfreich, den Ausgabestream im Aufruf angeben zu können, damit stattdessen sys.stderr verwendet werden kann.
Mit dieser Funktion sieht die Ausgabe des OP folgendermaßen aus:
was ich persönlich als nützlicher und beschreibender empfand.
Angesichts des etwas weniger trivialen Beispiels von:
Die vom OP angeforderte Lösung ergibt Folgendes:
wohingegen die "erweiterte" Version dies ergibt:
Ich hoffe, dies bietet der nächsten Person, die nach dieser Art von Funktionalität sucht, einen gewissen Wert.
quelle
pprint.pprint()
hier verwenden?Sie haben eine verschachtelte Struktur, daher müssen Sie auch das verschachtelte Wörterbuch formatieren:
Dies druckt:
quelle
pprint.pprint()
ist ein gutes Werkzeug für diesen Job:quelle
quelle
Dies funktioniert, wenn Sie wissen, dass der Baum nur zwei Ebenen hat:
quelle
Überprüfen Sie den folgenden Einzeiler:
Ausgabe:
quelle
sys.modules
, aber ich bin gescheitert. Willst du es versuchen?Ich bevorzuge die saubere Formatierung von
yaml
:Ausgabe:
quelle
pip install PyYAML
zuerst.quelle
quelle
Hier ist meine Lösung für das Problem. Ich denke, es ist ähnlich, aber ein bisschen einfacher als einige der anderen Antworten. Es erlaubt auch eine beliebige Anzahl von Unterwörterbüchern und scheint für jeden Datentyp zu funktionieren (ich habe es sogar an einem Wörterbuch getestet, das als Werte fungiert):
quelle
MrWonderful-Code ändern
quelle