OrderedDict的用法


 

python中的OrderedDict

 

該類型存放順序和添加順序一致,比如逐個賦值,但和dict直接轉化過去的順序不一定一樣.

復制代碼
d1 = collections.OrderedDict()
d1['b'] = 'B'
d1['a'] = 'A'
d1['c'] = 'C'
d1['2'] = '2'
d1['1'] = '1'
# OrderedDict([('b', 'B'), ('a', 'A'), ('c', 'C'), ('2', '2'), ('1', '1')])
復制代碼

 

復制代碼
1 dict1 = {"1": 1, "2":2, '3':3} 
2 print(dict1)
3 od1 = OrderedDict(dict1) # 和dict1初始化時看到的順序不一定一樣,但和dict1打印出來的順序一致
4 print(od1)
5 
6 #{'3': 3, '2': 2, '1': 1}
7 #OrderedDict([('3', 3), ('2', 2), ('1', 1)])
復制代碼

 

將OrderedDict轉化為dict:

復制代碼
list_key = []
list_value = []
# OrderedDict轉成dict
for key in od1.keys():
    list_key.append(key)
for value in od1.values():
    list_value.append(value)
zip_od = zip(list_key, list_value)
dict_od = dict(zip_od)
print(dict_od)

復制代碼

 

對該類型可以進行排序操作.

復制代碼
dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
 
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0])) 
print kd
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda t:t[1]))
print vd

#輸出
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
復制代碼

 

下面這種排序效果起不到作用:

復制代碼
sorted_od = (sorted(d1, key=lambda t: t[0]))
#['1', '2', 'a', 'b', 'c']

因為:
for i in d1:
    print(i)
# b
# a
# c
# 2
# 1

for j in d1.items():
    print(j)
# ('b', 'B')
# ('a', 'A')
# ('c', 'C')
# ('2', '2')
# ('1', '1')
轉載自:https://www.cnblogs.com/Stephen-Qin/p/10926834.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM