創建和使用字典
phone = {'Andy':'150','Bob':'137','john':'138'}
字典由鍵及其相應的值組成,這種鍵值對稱爲項,在示例中,鍵爲名字而值爲電話號碼。每個鍵與值之間用冒號隔開,整個字典放在花括號內。空字典用兩個花括號表示{}。
函數dict
可使用dict從其他映射或鍵值對序列創建字典。
item = [('name',"Andy"),('age',12)] d = dict(item) d {'name': 'Andy', 'age': 12}
還可使用實參來調用函數
d = dict(name='Andy',age=12) d {'name': 'Andy', 'age': 12} # 刪除字典元素 del d['name'] d {'age': 12} # len返回字典包含的鍵值對數 len(d) 1 # 修改值 d['age']=20 d {'age': 20}
字典方法
clear刪除所有字典項
d {'age': 20, 'name': 'andy'} d.clear() d {} >>>
copy返回一個新字典,把汗的鍵值對與原來的字典相同,當替換副本中的值時,原件不受影響,如果修改原件指向的值將被修改
x ={'username':'admin','machines':['foo','bar','cc']} y=x.copy() y['username']='root' y {'username': 'root', 'machines': ['foo', 'bar', 'cc']} x {'username': 'admin', 'machines': ['foo', 'bar', 'cc']}
deepcopy同時複製值及其包含的所有值
from copy import deepcopy a={} a['name']=['admin','root'] b=a.copy() ab=deepcopy(a) d['name'].append('tiger') a['name'].append('tiger') b {'name': ['admin', 'root', 'tiger']} a {'name': ['admin', 'root', 'tiger']} ab {'name': ['admin', 'root']}
get訪問字典項
d ={} print(d.get('name')) None 字典d中沒有鍵值所以在使用get訪問時返回None,也可指定默認值 d.get('name','NO') 'NO'
items返回一個包含所有字典項的列表,但字典中的順序不確定
d={'title':'python web Site','url':'http://www.python.org','spam':0} d.items() dict_items([('title', 'python web Site'), ('url', 'http://www.python.org'), ('spam', 0)]) it = d.items() len(it) 3 ('spam',0) in it True ('name','admin') in it False
keys返回一個字典視圖,包含指定字典中的鍵
d.keys() dict_keys(['title', 'url', 'spam'])
pop獲取與指定鍵相關聯的值,並將該鍵值對從字典中刪除
d.pop('title') 'python web Site' d {'url': 'http://www.python.org', 'spam': 0}
popitem隨機彈出一個字典項,因爲字典項順序是不確定的,如果不要求刪除字典項使用popitem
d.popitem() ('spam', 0) d {'url': 'http://www.python.org'}
setdefault獲取與指定鍵相關聯的值,setdefault還在字典不包含指定的鍵時,在字典中添加指定的鍵值對
d.setdefault('name','N') 'N' d {'name': 'N'} d['name']='admin' d {'name': 'admin'}
update更新另一個字典
d {'name': 'admin'} a ={'name':'root','age':20,'py':3.6} d.update(a) d {'name': 'root', 'age': 20, 'py': 3.6} a {'name': 'root', 'age': 20, 'py': 3.6}
values返回由字典中的值組成的字典視圖,方法values返回的視圖可能包含重複的值
num= {} num[1]=1 num[2]=2 num[3]=2 num.values() dict_values([1, 2, 2])