首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么dict上的迭代会改变输出中的键顺序?

为什么dict上的迭代会改变输出中的键顺序?
EN

Stack Overflow用户
提问于 2012-10-25 11:05:43
回答 2查看 151关注 0票数 3

可能重复: Why is python ordering my dictionary like so?

为什么要在这条数据上迭代

代码语言:javascript
复制
d = {'tors':None,
     'head':None,
     'armr':None,
     'arml':None,
     'legl':None,     
     'legr':None}

for k in d.keys():
    print k

将以不同的顺序输出键:

代码语言:javascript
复制
head
legl
armr
arml
tors
legr
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 12:04:39

这应该是一项工作:

代码语言:javascript
复制
import collections

ordered_d = collections.OrderedDict([('banana', 3),('apple',4),('pear', 1),('orange', 2)])
for k in ordered_d.keys():
    print k

其结果是:

代码语言:javascript
复制
banana
apple
pear
orange
票数 1
EN

Stack Overflow用户

发布于 2012-10-25 11:07:19

在python中,dict是作为散列映射实现的,没有人能保证键顺序。从文件

CPython实现细节:键和值是按任意顺序列出的,这些顺序是非随机的,不同的实现各不相同,并且取决于字典的插入和删除历史。

如果您需要继续订购,请使用collections.OrderedDict代替。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13067229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档