# -*- coding:utf-8 -*-
from collections import OrderedDict
from time import time
from random import randint
# 问题如下:
d = {}
d['Jim'] = (1, 35)
d['Leo'] = (2, 37)
d['Bob'] = (3, 40)
for k in d: print k
# 结果:
# Bob
# Jim
# Leo
# 以上输出表示程序并不维护字典元素的先后进入顺序
# 解决方案:
d = OrderedDict()
d['Jim'] = (1, 35)
d['Leo'] = (2, 37)
d['Bob'] = (3, 40)
for k in d: print k
# Jim
# Leo
# Bob
# 具体例子:
o_d = OrderedDict()
players = list('ABCDEFGH')
start = time()
for i in xrange(8):
raw_input()
p = players.pop(randint(0, 7-i))
end = time()
print i + 1, p, end - start,
o_d[p] = (i + 1, end - start)
print # 因为上面的print语句后面有 , 号,如果不加这句下面将会在上面输出结果后面直接紧接着输出
print '*' * 20 # 这种形式很有意思
for k in o_d: # k 为 d 中的 key
print k, o_d[k]
2-6 让字典保持有序
最新推荐文章于 2022-04-26 21:12:04 发布
本文通过一个具体的示例对比了普通字典与有序字典在元素存储顺序上的区别,并展示了一个使用有序字典记录玩家抽选顺序及耗时的应用场景。
515

被折叠的 条评论
为什么被折叠?



