python deque mit key/value

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dbgtmaster
User
Beiträge: 3
Registriert: Freitag 2. März 2018, 08:31

Freitag 2. März 2018, 10:16

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
Benutzeravatar
noisefloor
User
Beiträge: 2525
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Freitag 2. März 2018, 10:56

Hallo,

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

Gruß, noisefloor
dbgtmaster
User
Beiträge: 3
Registriert: Freitag 2. März 2018, 08:31

Freitag 2. März 2018, 12:03

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))]
Benutzeravatar
noisefloor
User
Beiträge: 2525
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Freitag 2. März 2018, 13:07

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
dbgtmaster
User
Beiträge: 3
Registriert: Freitag 2. März 2018, 08:31

Freitag 2. März 2018, 13:27

noisefloor hat geschrieben:Das ist aber auch in der Doku erklärt.
Seh ich auch gerade :( ... Aber danke, hast mir geholfen!
Antworten