clear() 清楚字典中全部的項,無返回值(或者說範圍None)
copy方法返回一個具備相同 鍵-值 的新字典(這個方法實現的是淺複製(shallow copy),由於值自己就是相同的,而不是副本)
x = {'username':'admin','machines':['foo','bar','baz']}
y = x.copy()
y['username'] = 'mlh'
y['machines'].remove('bar')
print y #輸出 {'username': 'mlh', 'machines': ['foo', 'baz']}
print x #輸出 {'username': 'admin', 'machines': ['foo', 'baz']}
能夠注意到,當在副本中替換值的時候,原始字典不受影響,但若是修改某個值(原地修改,不是替換),原始字典也會改變,由於一樣的值也存儲在原字典中
使用 深賦複製 (deep copy)複製其包含的全部值,可以使用 copy 模塊的 deepcopy 函數來完成
from copy import deepcopy
d = {}
d['name'] = ['A','B']
print d #輸出 {'name': ['A', 'B']}
c = d.copy()
cd = deepcopy(d)
d['name'].append('C') #直接在鍵中映射的添加值
print d #輸出 {'name': ['A', 'B', 'C']}
print cd #輸出 {'name': ['A', 'B']}
fromkeys 方法使用給定的鍵創建新的字典,每一個鍵都對應一個默認的值 None
print {}.fromkeys(['name','age'])
print dict.fromkeys('name','age')
print dict.fromkeys(['name','age'])
print dict.fromkeys(['name','age'],'(a)')
#輸出
{'age': None, 'name': None}
{'a': 'age', 'e': 'age', 'm': 'age', 'n': 'age'}
{'age': None, 'name': None}
{'age': '(a)', 'name': '(a)'}
get() 方法是更寬鬆的訪問字典項的方法,通常來講,若是試圖訪問字典中不存在的項目時會出錯,可是 get() 不會,
d1 = {}
d2 = {'name':'a'}
print d1.get('name')
print d1.get('name','b') #能夠結果爲默認值 None 的進行修改
print d2.get('name') #根據鍵訪問值
#輸出
None
b
a
d.has_key()與表達式 k in d 同樣,可是Python 3.0不包括此函數
keys() 方法將字典中的鍵以列表形式返回,而 iterkeys 則返回針對鍵的
迭代器對象
items() 方法將字典全部項以列表方式返回,列表中的每一項都表示爲(鍵,值)對的形式,可是項在返回時並無遵循特定的次序
d2 = {'name':'a','sex':'d','j':'m'}
print d2.items()
#輸出
[('j', 'm'), ('name', 'a'), ('sex', 'd')]
iteritems() 方法大體相同,可是返回的是一個
迭代器對象
pop() 方法用來得到對應於給定鍵的值,而後將這個鍵-值對從字典中移除
d = {'x':1,'y':2}
print d.pop('x')
print d
#輸出
1
{'y': 2}
popitem() 方法相似與 list.pop,後者會彈出列表的最後一個元素,但不一樣的是,popitem彈出隨機項,由於字典並無「最後的元素」或者其餘有關順序的概念,若想一個接一個地移除並處理項,這個方法就很是有效了(由於不用首先獲取鍵的列表)
儘管 popitem() 和列表 pop 方法很相似,但字典中沒有與 append() 等價的方法,由於字典是無序的,相似於 append() 的方法無任何意義的
setdefault() 方法在某種程度上與相似與get(),可以得到給定鍵相關聯的值,除此以外,setdefault() 還能在字典中不含有給定鍵的狀況下設定相應的鍵值
提供字典中的項會被添加到舊的字典中,如有相同的鍵則會進行覆蓋
update() 方法能夠使用和調用 dict() 函數(或者類型構造函數)一樣的方式進行調用
d2 = {'name':'a','sex':'d','j':'m'}
x = {'sex':'c'}
d2.update(x)
print d2
# 輸出
{'j': 'm', 'name': 'a', 'sex': 'c'}
values() 方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。與返回鍵的列表不一樣的是,返回值的列表中能夠包含重複的元素
d1 = {}
d2 = {'name':'a','sex':'d','j':'m'}
print d2.values()
#輸出
['m', 'a', 'd']