python(有序字典)

案例


某編程競賽系統(tǒng),對參賽選手編程解題進(jìn)行計時,選手完成題目后,把該選手解題時用時記錄到字典中,以便賽后按選手名查詢成績,(答題用時越短,成績越優(yōu))
{'LiLei':(2, 43), 'HanMeimei':(5, 52), 'Jim':(1, 39)...}
比賽結(jié)束后,需按排名順序依次打印選手成績,如何實現(xiàn)?

解析


(1)collections.OrderedDict

d = {}

d["Jim"] = (1, 35)
d["Leo"] = (2, 37)
d["Bob"] = (3, 40)

print(d)   # 亂序

# collections.OrderedDict

from collections import OrderedDict
from time import time
from random import randint

d1 = OrderedDict()
d1["Jim"] = (1, 35)
d1["Leo"] = (2, 37)
d1["Bob"] = (3, 40)

print(d1)  # 有序

res = OrderedDict()

players = list('ABCDEFGH')
start = time()

for i in range(8):
    input()
    p = players.pop(randint(0, 7-i))  # 隨機(jī)移除一位
    end = time()
    print(i+1, p, end-start)
    res[p] = (i+1, end-start)

print('-'*80)   # 分隔符
for k in res:
    print(k, res[k])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容