16.6 Sortierte Dictionarys
Der Datentyp OrderedDict aus dem Modul collections implementiert ein Dictionary, das die Reihenfolge der Schlüssel garantiert beibehält. Beim Basisdatentyp dict wird die Reihenfolge der Schlüssel als Implementationsdetail angesehen und kann sich in zukünftigen Python-Versionen verändern.
>>> d = collections.OrderedDict([("c", 1), ("b", 2), ("a", 3)])
>>> d
OrderedDict([('c', 1), ('b', 2), ('a', 3)])
Der Datentyp OrderedDict stellt zusätzlich zur Funktionalität eines normalen Dictionarys die folgenden Methoden bereit:
popitem([last])
Diese Methode entfernt das letzte Schlüssel-Wert-Paar aus dem Dictionary. Dieses Paar wird zurückgegeben. Wenn für den mit True vorbelegten Parameter last der Wert False übergeben wird, wird anstelle des letzten das erste Schlüssel-Wert-Paar des Dictionarys entfernt und zurückgegeben.
>>> d.popitem()
('a', 3)
>>> d.popitem(False)
('c', 1)
>>> d
OrderedDict([('b', 2)])
move_to_end(key, [last])
Die Methode move_to_end verschiebt das Schlüssel-Wert-Paar mit dem Schlüssel key ans Ende bzw. an den Anfang des Dictionarys. An welche der beiden Stellen das Paar verschoben wird, kann wie bei popitem über den Parameter last gesteuert werden.