python中的有序字典及其使用方法

2021-09-24 14:23:20 字數 4367 閱讀 4557

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...