python字典詳細介紹

奶茶喝不胖發表於2020-05-24

字典的用途

  字典是Python提供的一種常用的資料結構,它用於存放具有對映關係的資料。 字典相當於儲存了兩組資料,其中一組資料是關鍵資料,被稱為 key;另一組資料可通過 key 來訪問,被稱為 value。形象地看,字典中 key 和 value 的關聯關係如下圖所示:

注意:key是十分關鍵的資料,而且訪問value的時候需要通過key進行訪問,因此字典的key不允許重複

建立和使用字典

使用dict函式建立

可以使用函式 dict 從其他對映或鍵值對序列建立字典

items=[('name','god'),('age',42)]
d=dict(items)
print(d)
# 結果為{'name': 'god', 'age': 42}
# 如果不為dict函式傳入資料,則會建立一個空字典
t=dict()
print(t)
# 結果為 {}

除了傳遞鍵值對序列建立字典還可以指定關鍵字引數來建立字典

d=dict(name='god',age=12)
print(d)
# 結果為 {'name':'god','age':12}

字典的基本用法

1.通過key訪問value

items = {'name': 'god', 'age': 42}
print(items['age'])
# 結果為 42

2.通過key新增key-value對

items = {'name': 'god', 'age': 42}
items['sex'] = 'man'
print(items)
# 結果為 {'name': 'god', 'age': 42, 'sex': 'man'}	

3.通過key刪除key-value對

items = {'name': 'god', 'age': 42}
del items['name']
print(items)
#結果為 {'age': 42}

4.通過key值修改值

items = {'name': 'god', 'age': 42}
items['name']='James'
print(items)
# {'name': 'James', 'age': 42}

5.通過key判斷指定的key-value是否存在

items = {'name': 'god', 'age': 42}
print('name' in items)
print('sex' in items)
# 結果為  True False 

字典常用方法

1.clear()

clear() 用於清空字典中所有的 key-value 對,對一個字典執行 clear() 方法之後,該字典就會變成一個空字典,例子如下所示:

man={'name':'james','age':12}
print(man) 
# 結果為 {'name':'james','age':12}
man.clear()
print(man)
# 結果為 {}

2.get()方法

get()方法是根據key值來獲取value,使用get()方法的時候,如果key值不存在則會返回None。示例如下:

man={'name':'james','age':12}
print(man.get('name'))
# 結果為 'james'
print(man.get('sex'))
# 結果為None

3.update()方法####

update()方法可使用一個字典所包含的 key-value對來更新己有的字典。在執行 update()方法時,如果被更新的字典中己包含對應的 key-value對,那麼原value 會被覆蓋;如果被更新的字典中不包含對應的 key-value對,則該key-value對被新增進去。例如如下程式碼:

man={'name':'james','age':12}
man.update({'name':'tom'})
print(man)
# 結果為 {'name': 'tom', 'age': 12}
man.update({'sex':'man'})
print(man)
# 結果為: {'name': 'tom', 'age': 12, 'sex': 'man'}

4.items()、keys()、values()

items()、keys()、values() 分別用於獲取字典中的所有 key-value 對、所有 key、所有 value。這三個方法依次返回 dict_items、dict_keys 和 dict_values 物件。

man={'name':'james','age':12}
print(man.items())
# 結果為: dict_items([('name', 'tom'), ('age', 12), ('sex', 'man')])
print(man.keys())
# 結果為 dict_keys(['name', 'age', 'sex'])
print(man.values())
# 結果為 dict_values(['tom', 12, 'man'])

5.pop()方法

pop() 方法用於獲取指定 key 對應的 value,並刪除這個 key-value 對。

man={'name':'james','age':12}
print(man.pop('name'))
print(man)
# 結果為 james和 {'age':12}

6.setdefault()方法

setdefault() 方法也用於根據 key 來獲取對應 value 的值。但該方法有一個額外的功能,即當程式要獲取的 key 在字典中不存在時,該方法會先為這個不存在的 key 設定一個預設的 value,然後再返回該 key 對應的 value。總之,setdefault() 方法總能返回指定 key 對應的 value;如果該 key-value 對存在,則直接返回該 key 對應的 value;如果該 key-value 對不存在,則先為該 key 設定預設的 value,然後再返回該 key 對應的 value。
如下程式碼示範了 setdefault() 方法的用法:

cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
# 設定預設值,該key在dict中不存在,新增key-value對
print(cars.setdefault('PORSCHE', 9.2)) # 9.2
print(cars)
# 設定預設值,該key在dict中存在,不會修改dict內容
print(cars.setdefault('BMW', 3.4)) # 8.5
print(cars)

7.fromkeys()方法

fromkeys() 方法使用給定的多個 key 建立字典,這些 key 對應的 value 預設都是 None;也可以額外傳入一個引數作為預設的 value。

# 使用列表建立包含2個key的字典
a_dict = dict.fromkeys(['a', 'b'])
print(a_dict) # {'a': None, 'b': None}
# 使用元組建立包含2個key的字典
b_dict = dict.fromkeys((13, 17))
print(b_dict) # {13: None, 17: None}
# 使用元組建立包含2個key的字典,指定預設的value
c_dict = dict.fromkeys((13, 17), 'good')
print(c_dict) # {13: 'good', 17: 'good'}

博主開通了微信公眾號 “python做些事” 會定期更新python和AI知識,希望大家可以喜歡

相關文章