为什么python中的iteritems()函数以随机顺序检索键值对?

时间:2014-10-30 15:13:54

标签: python dictionary

>>> basket = {'fruit' : 'apple','veg' : 'potato', 'grain' : 'rice', 'liquor' : 'wine'}
>>> for k,v in basket.iteritems():
...     print k,v
... 
veg potato
liquor wine
fruit apple
grain rice
>>> 

从上面的例子中可以看出,键值对不是从左到右或从右到左打印。

要获得排序结果,我使用了

>>> basket = {'fruit' : 'apple','veg' : 'potato', 'grain' : 'rice', 'liquor' : 'wine'}
>>> for k,v in sorted(basket.iteritems()):
...     print k,v
... 
fruit apple
grain rice
liquor wine
veg potato
>>> 

当我尝试获取键值对的索引时,我得到了

>>> basket = {'fruit' : 'apple','veg' : 'potato', 'grain' : 'rice', 'liquor' : 'wine'}
>>> for k,v in enumerate(basket.iteritems()):
...     print k,v
... 
0 ('veg', 'potato')
1 ('liquor', 'wine')
2 ('fruit', 'apple')
3 ('grain', 'rice')
>>> 

为什么会这样?如何打印字典定义中显示的键值对,从左到右?

1 个答案:

答案 0 :(得分:1)

如果你曾经制作过哈希表,你知道订单不需要存储。

事实上,这是额外的工作。

如果您想保留插入项目的顺序,可以使用collections.OrderedDict,这样就可以了。