中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

在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

鲁甸县| 宜兰县| 上林县| 兴山县| 镇江市| 德令哈市| 焦作市| 阿拉尔市| 彭泽县| 永德县| 宿州市| 玉溪市| 万年县| 浪卡子县| 佳木斯市| 岳阳县| 平昌县| 唐海县| 临江市| 崇阳县| 都昌县| 宣恩县| 定结县| 铜山县| 手游| 庆城县| 庄河市| 威海市| 四平市| 黄龙县| 夹江县| 额济纳旗| 彩票| 全州县| 彭阳县| 韶山市| 桑日县| 黎城县| 沙坪坝区| 西藏| 东阳市|