Okay, das ist ein bisschen schwer zu erklären, aber hier gehts:In Python, Wie bekomme ich den nächsten und vorherigen Schlüssel: Wert eines bestimmten Schlüssels in einem Wörterbuch?
Ich habe ein Wörterbuch, dem ich Inhalt hinzufügen. Der Inhalt ist ein Hash-Benutzername (Schlüssel) mit einer IP-Adresse (Wert). Ich habe die Hashes in eine Reihenfolge gebracht, indem ich sie auf Basis 16 ausgeführt habe und dann Collection.orderedDict verwendet habe. So sah das Wörterbuch ein wenig wie folgt aus:
d = {'1234': '8.8.8.8', '2345':'0.0.0.0', '3213':'4.4.4.4', '4523':'1.1.1.1', '7654':'1.3.3.7', '9999':'127.0.0.1'}
Was ich ein Mechanismus benötigt war, die mir erlauben würde einer dieser Schlüssel zu holen, und der Schlüssel/Wert-Element eine höhere und eine niedrigere erhalten. So zum Beispiel, wenn ich 2345 zu holen, würde zurückkehrt der Code der Schlüssel: Wertekombinationen '1234: 8.8.8.8' und '3213: 4.4.4.4'
Also, so etwas wie:
for i in d:
while i < len(d)
if i == '2345':
print i.nextItem
print i.previousItem
break()
DICTS sind nicht bestellt. Es gibt keinen nächsten oder vorherigen Artikel. –
Ich habe meine bestellt mit 'collections.orderedDict'. Wenn es keine Möglichkeit gibt, dies in einem Diktat zu tun, kann ich die Schlüssel herausnehmen und in eine Liste (oder ein Tupel oder was auch immer) einfügen und dann nach dem nächsten und vorherigen Element suchen und dieses dann verwenden das Wörterbuch nach ihren Werten erneut abfragen? – Brewer
'collections.OrderedDict' Objekte haben intern eine Liste von 2-Tupeln. Wenn Sie sie mit '.items()' durchlaufen, sollten Sie sie in der Reihenfolge erhalten, in der sie hinzugefügt werden. – metatoaster