Seite 1 von 1

python deque mit key/value

Verfasst: Freitag 2. März 2018, 10:16
von dbgtmaster
Hallo,

folgende Situation:

Ich benötige ein Dictionary, um Key / Value Werte speichern zu können. Zusätzlich muss ich am Ende (append()) einen neuen Wert einfügen können und am Beginn Werte entfernen können Queue).
Zusätzlich möchte ich prüfen, ob ein bestimmer Key in meiner Liste exisitert (und den Wert erhalten)

Somit ein Mix auf einem Diectonary und Deque.

Gibt es in Python dazu eine passende Klasse??
Es werden maximal 1000 Einträge in der Liste gespeichert.

lG

Re: python deque mit key/value

Verfasst: Freitag 2. März 2018, 10:56
von noisefloor
Hallo,

im `collections `Modul gibt es das `OrderedDict`, das sollte hier passen.

Gruß, noisefloor

Re: python deque mit key/value

Verfasst: Freitag 2. März 2018, 12:03
von dbgtmaster
Danke!

Was ist der beste Weg, um den ersten Eintrag zu löschen?

Gibt es einfachere Wege?

Code: Alles auswählen

s = OrderedDict()
# ...
# ...
del s[next(iter(s))]

Re: python deque mit key/value

Verfasst: Freitag 2. März 2018, 13:07
von noisefloor
Hallo,

OrderedDict hat eine `popitem()` Methode:

[codebox=pycon file=Unbenannt.txt]>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['a'] = 1
>>> d['b'] = 2
>>> d['c'] = 3
>>> d['d'] = 4
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
>>> d.popitem()
('d', 4)
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> d.popitem(last=False)
('a', 1)
>>> d
OrderedDict([('b', 2), ('c', 3)])
>>>[/code]

Das ist aber auch in der Doku erklärt.

Gruß, noisefloor

Re: python deque mit key/value

Verfasst: Freitag 2. März 2018, 13:27
von dbgtmaster
noisefloor hat geschrieben:Das ist aber auch in der Doku erklärt.
Seh ich auch gerade :( ... Aber danke, hast mir geholfen!