使用OrderedDict出现乱序的情况(自己想通了)

来源:2-6 如何让字典保持有序

Brook_StudyMachine

2017-01-20

多次使用循环将数据传入字典,就会出现乱序和少漏字典项的问题

同一段代码

from random import randint,sample
from collections import OrderedDict
d1={}
d2=OrderedDict()
for x in xrange(5):
    d1[str(sample('abcdefgh',1))]=x
    d2[str(sample('abcdefgh',1))]=x
print d1
print d2

正常情况,应该是这样的,如图1

588219cb0001659405000239.jpg

图1


--------------------------------------------------------------------------------------------------

但是,有时候,会乱序或漏字典项,见图2

588219cb0001b3d605000290.jpg

图2

--------------------------------------------------------------------------------------------------

588219cb0001564d05000264.jpg

多次运行,还会出更多错误。


写回答

1回答

Brook_StudyMachine

提问者

2017-01-22

哈哈,自己想通了,由于d2[str(sample('abcdefgh',1))]=x,随机数字会和之前重复,将之前字典中相同key的项覆盖掉,造成乱序的假象。

0
0

Python高效编程技巧实战

精选50个Python案例,源自实战,全面提升Python编程能力

2582 学习 · 360 问题

查看课程