py程式設計技巧 1 6 如何讓字典保持有序

2021-09-20 06:06:04 字數 1186 閱讀 5176

某程式設計競賽系統,對於參賽選手解題情況進行計時。

選手完成題目後,就將該選手解題用時記錄到字典中,

以便賽後按選手名次查詢成績

比賽結束後,需要按照排名次序依次列印選手成績,如何實現。

d = {}

d['jim'] = (1,35)

d['leo'] = (2,37)

d['bob'] = (3,40)

for k in d:print k

由結果可以發現預設資料結構dict,沒有順序

使用collections.ordereddict

以ordereddict代替內建字典dict,依次將選手成績存入ordereddict

from collections import ordereddict

d2 = ordereddict()

d2['jim'] = (1,35)

d2['leo'] = (2,37)

d2['bob'] = (3,40)

for k in d2:print k

from time import time

from random import randint

from collections import ordereddict

d = ordereddict()

palyers = list('abcdefg')

start = time()

# print start

for i in xrange(7):

# 延時

raw_input()

# 每次隨機選取一名選手答題完畢

p = palyers.pop(randint(0, 6 - i))

end = time()

print i + 1,p, end - start

d[p] =(i+1,end-start)

#比賽結束列印成績

# 列印換行

print

# 列印分隔符

print '-'*20

for k in d:

print k,d[k]

如何讓字典保持有序

實際案例 某程式設計競賽系統,對參賽選手程式設計解題進行計時,選手完成題目後,把該選手解題用時記錄到字典中,以便賽後按選手名查詢成績。答題用時越短,成績越優。如 比賽結束後,需按排名順序依次列印選手成績,如何實現?眾所周知,python內建的dict型別是無序的,那我們要如何解決該問題呢?這時,我們...

如何讓字典保持有序

以ordereddict替代內建字典dict,依次將選手成績存入ordereddict from collections import ordereddict od ordereddict od c 1 od b 2 od a 3 list iter od 執行結果 c b a from colle...

慕課網 如何讓字典保持有序

某程式設計競賽系統個,對次參賽選擇手變成解題進行倒計時 選手完成題目後,把該選手解題用時記錄到字典中,以便後按選手名查詢成績 答題用時越短 成績越優秀 比賽結束後 需按排名順序依次列印選手成績,如何實現 from collections import ordereddict from time im...