1. 程式人生 > 其它 >Python中字典(dict)的操作

Python中字典(dict)的操作

技術標籤:Pythonpython

字典沒有索引 使用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