Why does iteritems() function in python retrieves the key-value pair in random order?
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 | >>> 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 >>> |
从上面的例子可以看出,键值对不是从左到右或从右到左打印的。
为了得到排序结果,我使用
1 2 3 4 5 6 7 8 9 | >>> 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 >>> |
号
当我尝试获取键值对的索引时,我得到
1 2 3 4 5 6 7 8 9 | >>> 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') >>> |
为什么会这样?如何从左到右打印字典定义中出现的键值对?
如果您曾经创建过哈希表,那么您就知道不需要存储顺序。
实际上,这是额外的工作。
如果要保持插入项的顺序,可以使用collections.ordereddict,它就是这样做的。