python字典默认是不带有序性的。也就是说其不维护每项进入字典的先后顺序。
解决方法:
d= {}
d['Jim'] = (1,35)
d['Leo'] = (2,37)
d['Bob'] = (3,40)
for k in d:print(k)
print('===========================================')
from collections import OrderedDict
d = OrderedDict()
d['Jim'] = (1, 35)
d['Leo'] = (2, 37)
d['Bob'] = (3, 40)
for k in d:print(k)
模拟比赛:
from time import time
from random import randint
from collections import OrderedDict
d = OrderedDict()
players = list('ABCDEFGH')
# 考试开始时间
start = time()
for i in range(8):
# 等待输入
input()
p = players.pop(randint(0,7 - i))
end = time()
# 排名,人名,考试时间
print(i + 1,p,end - start),
d[p] = (i+1,end - start)
print('-' * 20)
for k in d:
print(k,d[k])