在程式設計中,
一個序列是否有固定順序,
絕對是很重要的一件事,
今天就介紹下:
Python dict 為無序序列範例
現在就先來看看在不同的軟體下,同一段程式碼呈現的差異:
在Pycharm的Python Console:
rank = {'Nick': {'Coco': 1, 'Joker': 5},'John': {'Coco': 5, 'Joker': 1},'Kevin': {'Coco': 4, 'Joker': 2},'May': {'Coco': 1, 'Joker': 3}}
for n in rank:
print (n)
顯示結果為:
Nick
John
Kevin
May
但是同樣的一段Code,
在之前介紹過的Python Tutor中,
卻是呈現May , Nick , John , Kevin的順序。
其原因很簡單,
因為原始碼中的序列 rank 宣告為 dict ,
而 dict 為無序序列。
若在此範例中,
要顯示有固定順序的序列該如何做呢?
有下列幾種方式:1. 將 dict 轉為有序的 List
2. 建立一個 key List 當作順序的參照
3. 在 Python 3.6 版本之後,可使用有序字典 OrderedDict
以上幾種方式都能解決 dict 的順序問題,
這裡以第2種方法為範例:
若要照著人名 Nick , John , Kevin , May的順序顯示的話,
可寫為:
rank = {'Nick': {'Coco': 1, 'Joker': 5}, 'John': {'Coco': 5, 'Joker': 1}, 'Kevin': {'Coco': 4, 'Joker': 2}, 'May': {'Coco':1, 'Joker': 3}} #請在下方編寫code keys = ['Nick', 'John', 'Kevin', 'May'] for k in keys: print(k)
特別在輸入輸出資料時,
更應該注意順序
沒有留言:
張貼留言