Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in das Python-Modul: Ordered Dict (OrderedDict)

Einführung in das Python-Modul: Ordered Dict (OrderedDict)

WBOY
WBOYOriginal
2016-12-05 13:27:171246Durchsuche

Ordered Dictionary – Einführung in OrderedDict

Beispiel

Ein geordnetes Wörterbuch ähnelt einem normalen Wörterbuch, außer dass es die Reihenfolge aufzeichnen kann, in der Elemente darin eingefügt werden, während ein normales Wörterbuch in jeder beliebigen Reihenfolge iteriert. Siehe Beispiel unten:

import collections

print 'Regular dictionary:'
d = {}
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
d['d'] = 'D'
d['e'] = 'E'

for k, v in d.items():
  print k, v

print '\nOrderedDict:'
d = collections.OrderedDict()
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
d['d'] = 'D'
d['e'] = 'E'

for k, v in d.items():
  print k, v

Die Laufergebnisse sind wie folgt:

-> python test7.py
Regular dictionary:
a A
c C
b B
e E
d D

OrderedDict:
a A
b B
c C
d D
e E

Sie können sehen, dass Wörterbücher normalerweise nicht in der Einfügereihenfolge durchlaufen werden.

Gleichberechtigung

Um festzustellen, ob zwei geordnete Felder gleich sind (==), müssen Sie berücksichtigen, ob die Reihenfolge der Elementeinfügung gleich ist

import collections

print 'dict    :',
d1 = {}
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['d'] = 'D'
d1['e'] = 'E'

d2 = {}
d2['e'] = 'E'
d2['d'] = 'D'
d2['c'] = 'C'
d2['b'] = 'B'
d2['a'] = 'A'

print d1 == d2

print 'OrderedDict:',

d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['d'] = 'D'
d1['e'] = 'E'

d2 = collections.OrderedDict()
d2['e'] = 'E'
d2['d'] = 'D'
d2['c'] = 'C'
d2['b'] = 'B'
d2['a'] = 'A'

print d1 == d2

Die Laufergebnisse sind wie folgt:

-> python test7.py
dict    : True
OrderedDict: False

Bei der Beurteilung, ob ein geordnetes Wörterbuch anderen gewöhnlichen Wörterbüchern gleicht, müssen Sie nur beurteilen, ob der Inhalt gleich ist.

Achtung

Obwohl die Konstruktor- oder update()-Methode von OrderedDict Schlüsselwortparameter akzeptiert, geht die Reihenfolge der Schlüsselwortparameter verloren, da Python-Funktionsaufrufe ungeordnete Wörterbücher zum Übergeben von Parametern verwenden, sodass das geordnete Wörterbuch erstellt wird. Die Reihenfolge ist nicht garantiert.

Referenzmaterialien

https://docs.python.org/2/library/collections.html#collections.OrderedDict
https://pymotw.com/2/collections/ordereddict.html

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn