亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

在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

慈溪市| 深水埗区| 卢氏县| 儋州市| 都匀市| 鹿泉市| 赣榆县| 固始县| 涪陵区| 儋州市| 华容县| 湘潭市| 利川市| 桐庐县| 彩票| 永康市| 讷河市| 建昌县| 蒙阴县| 朝阳市| 彰化市| 泽普县| 成武县| 屏东县| 福建省| 普兰县| 新沂市| 江陵县| 布尔津县| 浦东新区| 娄底市| 阆中市| 中江县| 公主岭市| 杭州市| 怀仁县| 黑河市| 建昌县| 河西区| 肃南| 六盘水市|