, , . Python dicts , OrderedDict ( ). , blist.sorteddict , blist.sortedlist, , .
, ( ), ? /, , , /.
. reversed:
for key in mydict:
for key in reversed(mydict.keys()):
- () , ; ?
, itertools , - :
from itertools import dropwhile, takewhile
next(dropwhile(lambda x: x <= 4, mydict))
next(dropwhile(lambda x: x >= 20, reversed(mydict.keys()))
:
def first_beyond(pivot, seq):
next(dropwhile(lambda x: x <= pivot, seq))
first_beyond(4, mydict)
first_beyond(20, reversed(mydict.keys()))
, , ( )?
:
from itertools import dropwhile, takewhile
def between(begin, end, seq):
return takewhile(lambda x: x <= end,
dropwhile(lambda x: x < begin, seq))
:
>>> list(between(4, 30, [1,2,4,8,16,32]))
[4, 8, 16]
: , . , :
keys = sorted(mydict)
for k in keys:
for k in reversed(keys):
def forward_or_backward(seq, forward=True):
for x in (iter if forward else reversed)(seq):
yield x
for i, key in enumerate(keys):
key[i+1]
. , , , , .