boję się myśleć jak wolno to będzie na liście rozmiarów, ale tylko sposób mam wymyślić tak daleko ...
>>> foo.items()[foo.keys().index('apple') + 1]
('banana', 3)
Edit:
przykład był nieco wymyślny; moja aktualna kolekcja jest kluczowana według dat. Jeśli potrzebuję wpisu po today
; znalazłem rozwiązanie przy użyciu funkcji podświetlania ...
>>> foo = OrderedDict([(datetime.date(2000,1,1), 4), (datetime.date(2000,5,23), 3), datetime.date(2000,10,1), 2), (datetime.date(2000,12,31), 1)])
>>> today = datetime.date(2000,1,30)
>>> foo.items()[foo.keys().index((itertools.dropwhile(lambda d: d<today, foo)).next())]
(datetime.date(2000, 5, 23), 3)
Całkiem kęs.
'OrderedDict' wydaje się być zbyt proste dla tego produktu. Może działałby okropny jednolinijkowy? 'foo [(klawisze lambda: keys [(keys.index ('pear') + 1)% len (keys)]) (foo.keys())]' – Blender