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