91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Python中怎么讓字典保持有序

發布時間:2022-04-29 14:10:22 來源:億速云 閱讀:211 作者:iii 欄目:開發技術

這篇文章主要介紹“在Python中怎么讓字典保持有序”,在日常操作中,相信很多人在在Python中怎么讓字典保持有序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”在Python中怎么讓字典保持有序”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1、如何讓字典保持有序

實際案例:

某編程競賽系統,對參賽選手編程解題進行計時,選手完成題目后,把該選手解題用時記錄到字典中,以便賽后按選手名查詢成績。(答題用時越短,成績越優秀。)

如:LiLei第2名用時43分鐘,HanMeimei第5名用時52分鐘,Jim第1名用時39分鐘

{'LiLei': (2, 43), 'HanMeimei': (5, 52), 'Jim': (1, 39), ...}

比賽結束后,需要按排名順序依次打印選手成績,如何實現?

注:為什么不用列表而用字典?就是為了方便賽后可以按名字查詢成績。

Python V3.6版本之前字典無序,3.6版本之后字典開始有序。

 解決方案:

  • 使用collections.OrderedDict(有序字典)

  • OrderedDict代替內置字典Dict,依次將選手成績存入OrderDict

2、代碼演示

(1)OrderedDict有序字典簡單使用

d = dict()
print(d)
d['Jim'] = (1, 35)
d['Leo'] = (2, 37)
d['Bob'] = (3, 40)
print(d)
 
# 希望迭代字典時候,按每項先后進入順序打印
for k in d:
    print(k)
 
# 導入有序字典
from collections import OrderedDict
 
d2 = OrderedDict()
d['Jim'] = (1, 35)
d['Leo'] = (2, 37)
d['Bob'] = (3, 40)
for k in d:
    print(k)

(2)模擬編寫競賽答題

# 編程模擬選手
players = list('ABCDEF')
# 模擬選手的答題時間
from time import time
from random import randint
from collections import OrderedDict
 
d = OrderedDict()
start = time()
for i in range(6):
    # 等待用戶輸入,作為阻斷進程
    input()
    # 每次隨機選擇一名選手答題完畢
    p = players.pop(randint(0, 5 - 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中怎么讓字典保持有序”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岱山县| 阿拉尔市| 获嘉县| 资阳市| 灌南县| 长宁区| 阿克苏市| 河源市| 长乐市| 隆子县| 漳浦县| 申扎县| 汪清县| 孟州市| 镇雄县| 宽甸| 贡山| 西乌珠穆沁旗| 历史| 金门县| 定远县| 铜鼓县| 海阳市| 宁都县| 巴林右旗| 海城市| 金塔县| 康马县| 宁陵县| 磐石市| 富锦市| 鹤庆县| 扎赉特旗| 商洛市| 江西省| 融水| 大埔县| 石林| 濮阳县| 房产| 凤台县|