【发布时间】:2015-02-27 20:17:37
【问题描述】:
我有一个collections.OrderedDict,其中包含键值对列表。我想计算索引i 使得ith 键与给定值匹配。例如:
food = OrderedDict([('beans',33),('rice',44),('pineapple',55),('chicken',66)])
我想从键 chicken 到索引 3,或从键 rice 到索引 1。我现在可以这样做
food.keys().index('rice')
但是有没有办法利用OrderedDict通过键名快速查找内容的能力?否则看起来索引查找将是 O(N) 而不是 O (log N),而且我有很多东西。
我想我可以通过制作自己的索引来手动执行此操作:
>>> foodIndex = {k:i for i,k in enumerate(food.keys())}
>>> foodIndex
{'chicken': 3, 'rice': 1, 'beans': 0, 'pineapple': 2}
但我希望OrderedDict 中可能包含一些内容。
【问题讨论】:
-
food.keys().index('rice')是否适用于 python3?
标签: python dictionary ordereddictionary