Heim  >  Artikel  >  Backend-Entwicklung  >  So halten Sie ein Wörterbuch in Python in Ordnung (Code)

So halten Sie ein Wörterbuch in Python in Ordnung (Code)

不言
不言nach vorne
2018-10-11 14:24:563094Durchsuche

In diesem Artikel geht es darum, wie Python Wörterbücher in Ordnung hält (Code). Freunde in Not können sich darauf beziehen.

1. Anforderungen

Wir möchten ein Wörterbuch erstellen und gleichzeitig beim Iterieren oder Serialisieren des Wörterbuchs auch die Reihenfolge der Elemente steuern.

2. Lösung

Um die Reihenfolge der Elemente im Wörterbuch zu steuern, können Sie die OrderedDict-Klasse im Collections-Modul verwenden. Bei der Iteration über ein Wörterbuch erfolgt dies streng in der Reihenfolge, in der die Elemente ursprünglich hinzugefügt wurden.

from collections import OrderedDict
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
#根据插入删除输出
for key in d:
print(key,d[key])

Ergebnis:

a 1
b 2
c 3
d 4

OrderedDict ist besonders nützlich, wenn Sie eine Zuordnungsstruktur erstellen möchten, die später serialisiert oder in ein anderes Format codiert werden kann. Beispiel: Wenn Sie die Reihenfolge jedes Felds beim Codieren von JSON genau steuern möchten, müssen Sie zunächst nur die Daten in OrderedDict erstellen:

from collections import OrderedDict
import json

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
j=json.dumps(d)
print(j)

Ergebnis:

{"a": 1, "b": 2, "c": 3, "d": 4}
OrderedDict verwaltet intern eine doppelt verknüpfte Liste. Dadurch werden die Positionen der Tasten entsprechend der Reihenfolge angeordnet, in der Elemente hinzugefügt werden. Das erste neu hinzugefügte Element wird am Ende der verknüpften Liste platziert und anschließend werden die vorhandenen Schlüssel neu zugewiesen, ohne dass sich die Position der Schlüssel ändert.

Bitte beachten Sie: OrderedDict ist doppelt so groß wie ein normales Wörterbuch. Dies liegt an der zusätzlich erstellten verknüpften Liste. Wenn Sie also planen, eine Datenstruktur zu erstellen, die eine große Anzahl von OrderedDict-Instanzen umfasst (z. B. das Lesen von 100.000 Zeilen aus einer CSV-Datei in eine OrderedDict-Liste), müssen Sie eine Anforderungsanalyse der Anwendung durchführen, um die Vorteile zu ermitteln der Verwendung von OrderedDict. Können die Nachteile des zusätzlichen Speicheraufwands überwunden werden?

Das obige ist der detaillierte Inhalt vonSo halten Sie ein Wörterbuch in Python in Ordnung (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen