2 6 讓字典保持有序

2021-07-29 10:35:22 字數 1028 閱讀 2965

# -*- 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]

如何讓字典保持有序

實際案例 某程式設計競賽系統,對參賽選手程式設計解題進行計時,選手完成題目後,把該選手解題用時記錄到字典中,以便賽後按選手名查詢成績。答題用時越短,成績越優。如 比賽結束後,需按排名順序依次列印選手成績,如何實現?眾所周知,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...