d1={}
d1['a']='a'
d1['b']='b'
d1['c']='c'
d1['d']='d' #此時的d1 =
for k,v in d1.items():
print k,v
輸出結果為:
a a
c cb b
d d
由上面的結果可以看出對普通字典進行遍歷,輸出結果是無序的。
import collections
d1={}
d1=collections.ordereddict() #將普通字典轉換為有序字典
d1['a']='a'
d1['b']='b'
d1['c']='c'
d1['d']='d'
for k,v in d1.items():
print k,v
輸出結果為:
a a
b bc c
d d
對比兩種輸出結果,不難發現,有序字典可以按字典中元素的插入順序來輸出。
上面兩個例子之所以字典中插入元素,而不是一開始就將字典中的元素定義好,是因為有序字典的作用只是記住元素插入順序並按順序輸出。
如果有序字典中的元素一開始就定義好了,後面沒有插入元素這一動作,那麼遍歷有序字典,其輸出結果為空,因為缺少了有序插入這一條件,所以此時有序字典就失去了作用,所以有序字典一般用於動態新增並需要按新增順序輸出的時候。
舉例說明:
import collections
d2 =
d2=collections.ordereddict() #將普通字典轉換為有序字典
for k,v in d2.items():
print k,v
其輸出結果為空。
建立有序字典
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
print(dic)
#輸出:ordereddict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
clear(清空有序字典)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic.clear()
print(dic)
#輸出:ordereddict()
copy(拷貝)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
new_dic = dic.copy()
print(new_dic)
#輸出:ordereddict([('k1', 'v1'), ('k2', 'v2')])
fromkeys(指定乙個列表,把列表中的值作為字典的key,生成乙個字典)
import collections
dic = collections.ordereddict()
name = ['tom','lucy','sam']
print(dic.fromkeys(name))
print(dic.fromkeys(name,20))
#輸出:ordereddict([('tom', none), ('lucy', none), ('sam', none)])
# ordereddict([('tom', 20), ('lucy', 20), ('sam', 20)])
items(返回由「鍵值對組成元素「的列表)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
print(dic.items())
#輸出:odict_items([('k1', 'v1'), ('k2', 'v2')])
keys(獲取字典所有的key)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
print(dic.keys())
# 輸出:odict_keys(['k1', 'k2'])
move_to_end(指定乙個key,把對應的key-value移到最後)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
dic.move_to_end('k1')
print(dic)
# 輸出:ordereddict([('k2', 'v2'), ('k3', 'v3'), ('k1', 'v1')])
pop(獲取指定key的value,並在字典中刪除)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
k = dic.pop('k2')
print(k,dic)
# 輸出:v2 ordereddict([('k1', 'v1'), ('k3', 'v3')])
popitem(按照後進先出原則,刪除最後加入的元素,返回key-value)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
print(dic.popitem(),dic)
print(dic.popitem(),dic)
# 輸出:('k3', 'v3') ordereddict([('k1', 'v1'), ('k2', 'v2')])
# ('k2', 'v2') ordereddict([('k1', 'v1')])
setdefault(獲取指定key的value,如果key不存在,則建立)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
val = dic.setdefault('k5')
print(val,dic)
# 輸出:none ordereddict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3'), ('k5', none)])
values(獲取字典所有的value,返回乙個列表)
import collections
dic = collections.ordereddict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
print(dic.values())
# 輸出:odict_values(['v1', 'v2', 'v3'])
以上就是python 有序字典使用方法的詳細內容。 python中的有序字典OrderedDict
1.ordereddict 有序字典 ordereddict是dict的子類,它記住了內容新增的順序。比較時,ordereddict要內容和順序完全相同才會視為相等。python view plain copy import collections d collections.ordereddict...
python的有序字典
字典即雜湊表,由空間換取時間得到取數o 1 的速度。對於雜湊表有乙個很好的比喻就是櫃子,每乙個物件通過計算獲取乙個hash值,hash值就像是櫃子的編號 字典的key 用以迅速的查詢櫃子裡所儲存的東西 字典的value 如果櫃子裡有多個東西 hash值不唯一 根據具體演算法的實現方式有不同的處理方式...
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...