python入門:字典

創建和使用字典

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])


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章