Python中字典(dict)的操作
字典沒有索引 使用key進行定位 字典中的每個key一定是唯一的 字典中的元素數量沒有限制 字典中的value可以是任何Python中的內建資料型別和自定義物件
修改/新增元素取決於字典中存不存在這個key
# coding:utf-8
info_dict = {'name': '白澤'}
info_dict['name'] = '上神'
info_dict['age'] = 20
print(info_dict)
執行結果:
{'name': '上神', 'age': 20}
update(new_dict)
新增新的字典,如果新字典中有和原字典中key相同的元素,則原字典key的value就會被覆蓋掉
# coding:utf-8
info_dict = {'name': '白澤'}
new_dict = {'name': '白澤上神', 'age': 20}
info_dict.update(new_dict)
print(info_dict)
執行結果:
{'name': '白澤上神', 'age': 20}
setdefault(key,value)
獲取某個key的value,如果key不存在,則將會新增key並將value設為預設值,如果存在則value不起作用
# coding:utf-8 info_dict = {'name': '白澤'} value = info_dict.setdefault('name', '白澤上神') print(info_dict, value) value = info_dict.setdefault('age', 20) print(info_dict, value)
執行結果:
{'name': '白澤'} 白澤
{'name': '白澤', 'age': 20} 20
keys()
獲取當前字典中所有的鍵,返回一個key集合的偽列表
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
print(info_dict.keys()) # 獲取偽列表 無法處理資料 無法使用列表的操作
print(list(info_dict.keys())) # 獲取真列表
執行結果:
dict_keys(['name', 'age'])
['name', 'age']
values()
獲取當前字典中所有鍵值對的value,返回一個value集合的偽列表
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
print(info_dict.values())
print(list(info_dict.values()))
執行結果:
dict_values(['白澤', 20])
['白澤', 20]
get(key,default=None) dict[key]
獲取key的value 如果key不存在則返回default的值,default可以自定義
通過get獲取如果key不存在則返回預設值
通過[]獲取如果key不存在則會報錯
開發中優先使用get
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
print(info_dict.get('name'))
print(info_dict.get('work', '學生'))
執行結果:
白澤
學生
字典的刪除
clear()
用法:dict.clear()
清空當前字典中所有的資料
pop(key)
用法:value = dict.pop(key)
刪除字典中指定的key,並將其結果返回,如果key不存在則報錯
del
用法:del dict[key]
刪除整個字典 del dict
copy()
將當前字典複製給一個新的字典,記憶體地址不同
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
new_dict = info_dict.copy()
print(info_dict, id(info_dict))
print(new_dict, id(new_dict))
執行結果:
{'name': '白澤', 'age': 20} 2446998693504
{'name': '白澤', 'age': 20} 2446998694784
使用成員運算子判斷key是否存在 in 、not in(優先使用)
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
print('age' in info_dict)
print('age' not in info_dict)
執行結果:
True
False
使用get判斷成員是否存在(存在問題:獲取的是value,如果value = None 則返回False(不推薦使用))
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
print(bool(info_dict.get('name')))
print(bool(info_dict.get('work')))
執行結果:
True
False
popitem()
刪除當前字典裡末尾的一組鍵值對並將其返回
返回被刪除的鍵值對,用元組包裹 索引0是key 索引1是value
如果字典為空則報錯
# coding:utf-8
info_dict = {'name': '白澤', 'age': 20}
age = info_dict.popitem()
print(age)
print(age[0], age[1])
執行結果:
('age', 20)
age 20