有序字典和普通的dict基本上是相似的,只有一點不同,那就是有序字典中鍵值對的順序會保留插入時的順序。
有序字典的建立方法和普通的dict類似,不過由於多了保留順序的功能,因此在使用可迭代物件建立有序字典時,可以對它先排個序,讓建立出來的字典元素也是有序的:
data =[(
'a',1)
,('b',3)
,('c',2)
]od = collections.ordereddict(
sorted
(data,key=
lambda s:s[0]
))#按資料中key值的大小排序
print
(od)
od = collections.ordereddict(
sorted
(data,key=
lambda s:s[1]
))#按資料中value值的大小排序
print
(od)
得到的結果:
ordereddict([(
'a',1)
,('b',3)
,('c',2)
])ordereddict([(
'a',1)
,('c',2)
,('b',3)
])
這裡使用的sorted
函式,它返回對乙個可迭代物件排序後的結果,如果可迭代物件的元素不能直接進行比較(比如元素是乙個list
或tuple
等),則需要指定key
函式。
這裡使用lambda
表示式lambda s:s[0]
和lambda s:s[1]
,分別指定key
為data
中每個元素(tuple
型別)的第乙個元素和第二個元素。
有序字典提供了乙個move_to_end
函式,這個函式可以將指定的鍵值對移動到最前面或者最後面,即最左邊或最右邊:
dt = collections.ordereddict(
)dt[
'a']=0
dt['b']=
1dt[
'c']=2
dt.move_to_end(
'b',last =
false
)#將`b`鍵值對移動到最前方
print
(dt)
dt.move_to_end(
'b',last =
true
)#將`b`鍵值對移動到最後方
print
(dt)
得到的結果:
ordereddict([(
'b',1)
,('a',0)
,('c',2)
])ordereddict([(
'a',0)
,('c',2)
,('b',1)
])
Python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 1 d1 2 d1 a a 3 d1 b b 4 d1 c c 5 d1 d d 此時的d1 6 for k,v in d1.it...
python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 1 d1 2 d1 a a 3 d1 b b 4 d1 c c 5 d1 d d 此時的d1 6 for k,v in d1.it...
python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 由上面的結果可以看出對普通字典進行遍歷,輸出結果是無序的。下面是有序字典 需要匯入collections包 對比兩種輸出結果,不難...