Python字典介紹

wddwr7307914發表於2021-04-13

目前B站正在直播Mysql、Oracle實戰,詳情請關注公眾號:IT邦德


字典是“鍵值對”的無序可變序列,字典中的每個元素都是一個“鍵值對”,包含:“鍵物件”和“值物件”。

可以透過“鍵物件”實現快速獲取、刪除、更新對應的“值物件”。

列表中我們透過“下標數字”找到對應的物件。字典中透過“鍵物件”找到對應的“值物件”。

“鍵”是任意的不可變資料,比如:整數、浮點數、字串、元組。

但是,列表、字典、集合這些可變物件,不能作為“鍵”。並且“鍵”不可重複。

“值”可以是任意的資料,並且可重複。

一個典型的字典的定義方式:a = {'name':'jeames','age':18,'job':'programmer'}

1 字典的建立

1.1  我們可以透過{}、dict()來建立字典物件

>>> a = {'name':'jeames','age':18,'job':'programmer'}

>>> b = dict(name='jeames',age=18,job='programmer')
>>> a = dict([("name","jeames"),("age",18)])
>>> c = {} #空的字典物件
>>> d = dict() #空的字典物件

1.2 透過 zip()建立字典物件

>>> k = ['name','age','job']

>>> v = ['jeames',18,'techer']
>>> d = dict(zip(k,v))
>>> d
{'name': 'jeames', 'age': 18, 'job': 'techer'}

1.3 透過 fromkeys 建立值為空的字典

>>> a = dict.fromkeys(['name','age','job'])

>>> a
{'name': None, 'age': None, 'job': None}
2 字典元素的訪問

為了測試各種訪問方法,我們這裡設定一個字典物件: a = {'name':'jeames','age':18,'job':'programmer'}

2.1 透過 [鍵] 獲得“值”。若鍵不存在,則丟擲異常。

>>> a = {'name':'jeames','age':18,'job':'programmer'}

>>> a['name']
'jeames'
>>> a['age']
18
>>> a['sex']
Traceback (most recent call last):
File "<pyshell#374>", line 1, in <module>
a['sex']
KeyError: 'sex'

2.2  透過 get()方法獲得“值”

優點是:指定鍵不存在,返回 None;也可以設定指定鍵不存在時預設返回的物件。推薦使用 get()獲取“值物件”。

>>> a.get('name')

'jeames'
>>> a.get('sex')
>>> a.get('sex','一個男人')
'一個男人'

2.3 列出所有的鍵值對   

>>> a.items()

dict_items([('name', 'gaoqi'), ('age', 18), ('job', 'programmer')])

2.4 列出所有的鍵,列出所有的值

>>> a.keys()

dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['jeames', 18, 'programmer'])

3.字典元素新增

3.1 給字典新增“鍵值對”

如果“鍵”已經存在,則覆蓋舊的鍵值對;如果“鍵”不存在,則新增“鍵值對”。

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}

>>> a['address']='西三旗 1 號院'
>>> a['age']=16
>>> a
{'name': 'gaoqi', 'age': 16, 'job': 'programmer', 'address': '西三旗 1 號院'}

3.2 字典中元素的刪除

可以使用 del()方法;或者 clear()刪除所有鍵值對;pop()刪除指定鍵值對,並返回對應的“值物件”;

>>> a = {'name':'gaoqi','age':18,'job':'programmer'}
>>> del(a['name'])
>>> a
{'age': 18, 'job': 'programmer'}
>>> b = a.pop('age')
>>> b
18

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947868/viewspace-2767887/,如需轉載,請註明出處,否則將追究法律責任。

相關文章