2016-11-09 3 views
0

Beispiel:Wie füge ich Wörterlisten nacheinander hinzu? Wörterbuch

dictionary = {} 
dictionary['a'] = 1 
dictionary['b'] = 2 
dictionary['c'] = 3 
dictionary['d'] = 4 
dictionary['e'] = 5 
print(dictionary) 

diesen Code ausführen 1. Mal: ​​

{'c': 3, 'd': 4, 'e': 5, 'a': 1, 'b': 2} 

2.:

{'e': 5, 'a': 1, 'b': 2, 'd': 4, 'c': 3} 

3.:

{'d': 4, 'a': 1, 'b': 2, 'e': 5, 'c': 3} 

Meine exp ektiert Ergebnis:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} 

oder wenn mein Code:

dictionary = {} 
dictionary['r'] = 150 
dictionary['j'] = 240 
dictionary['k'] = 98 
dictionary['l'] = 42 
dictionary['m'] = 57 
print(dictionary) 
#The result should be 
{'r': 150, 'j': 240, 'k': 98, 'l': 42, 'm': 57} 

Durch mein Projekt das Wörterbuch mit 100 ++ Listen in eine Datei schreiben und es wird leichter zu lesen.

P.S. Entschuldigung für mein Englisch und wenn mein Fragetitel nicht klar ist.

Vielen Dank.

Antwort

3

Pythons dict sind ungeordnet in der Natur. Um die Reihenfolge beizubehalten, in der Elemente eingefügt werden, verwenden Sie collection.OrderedDict().

Sample Run:

>>> from collections import OrderedDict 

>>> dictionary = OrderedDict() 
>>> dictionary['a'] = 1 
>>> dictionary['b'] = 2 
>>> dictionary['c'] = 3 
>>> dictionary['d'] = 4 
>>> dictionary['e'] = 5 

# first print 
>>> print(dictionary) 
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]) 

# second print, same result 
>>> print(dictionary) 
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]) 

Denn es an die JSON-Datei zu schreiben, können Sie die dict Objekt string Dump mit json.dumps() als:

>>> import json 

>>> json.dumps(dictionary) # returns JSON string 
'{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}' 

Gemäß der collections.OrderedDict() document:

Gibt eine Instanz einer dict-Unterklasse zurück, die die üblichen dict-Methoden unterstützt. Ein OrderedDict ist ein Diktat, das sich an die Reihenfolge erinnert, in der Schlüssel zuerst eingefügt wurden. Wenn ein neuer Eintrag einen vorhandenen Eintrag überschreibt, bleibt die ursprüngliche Einfügeposition unverändert. Löschen eines Eintrags und erneutes Einfügen führt zum Ende.

+0

aber wenn er das zu Datei am Ende drucken wollen, denken Sie nicht, dass es nicht sehr nützlich sein wird, da es ein Objekt nicht ein konventionelles Wörterbuch ist, das ** JSON ** Struktur ausdrucken würde, wenn es in Datei gedruckt wird. – harshil9968

+1

@ harshil9968: Verwenden Sie in diesem Fall 'json.dumps()'. Aktualisierte Antwort –

Verwandte Themen