2-6 让字典保持有序

来源:互联网 发布:矩阵图片 编辑:程序博客网 时间:2024/05/23 02:28
# -*- coding:utf-8 -*-from collections import OrderedDictfrom time import timefrom 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]
0 0