Python字典存储

Python字典存储,python,Python,可能重复: 我试着把一个dict复制到另一个上,但是是按顺序进行的。我有以下问题 mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} d1={} for key in sorted(mydict): d1[key]=mydict[key] 当我打印d1时,它显示: {'bob': 1, 'danny': 3,

可能重复:

我试着把一个
dict
复制到另一个
上,但是是按顺序进行的。我有以下问题

mydict = {'carl':40,           
          'alan':2,           
          'bob':1,           
          'danny':3}
d1={}
for key in sorted(mydict):
    d1[key]=mydict[key]
当我打印
d1
时,它显示:

{'bob': 1, 'danny': 3, 'carl': 40, 'alan': 2}
为什么不按顺序排列?

字典没有顺序。
您必须使用。Python字典未排序。使用
collections.OrderedDict
,因为
dict
不记得第一次插入键的顺序。您需要。

那么默认的顺序是什么?为什么它不像堆栈一样工作?顺序是由实现定义的。顺序应该被认为是随机的-dict就像一个哈希表,针对访问速度(O(1))进行了优化。