【发布时间】:2017-03-20 04:58:52
【问题描述】:
我想以相反的顺序迭代 OrderedDict。
即颠倒顺序:
for k, v in my_ordered_dict.iteritems():
# < do stuff >
到目前为止,我通过反转列表获得了一个非惰性版本:
for k, v in list(my_ordered_dict.iteritems())[::-1]:
# < do stuff >
有什么办法可以让它变得更好吗?
【问题讨论】:
-
@sayth,这是一个不同的问题
-
reverse()并不懒惰 - 它需要评估整个iterable以将其以相反的顺序返回,for k, v in reversed(my_ordered_dict.iteritems())是您能做的最好的事情。 -
@AChampion,在这种情况下,
reversed(my_ordered_dict.iteritems())等同于list(my_ordered_dict.iteritems())[::-1]? -
TIL:这让
reversed()成为更好的选择。
标签: python dictionary ordereddictionary