字典的创建
字典的格式一般是{key:value} 其中key值唯一,value不唯一
使用{}或dict()函数来创建空字典:
d = {}
d1 = dict()
print(type(d), type(d1))
# 输出结果:
<class 'dict'> <class 'dict'>
修改和增加字典的值:
字典的修改,根据key值修改对应的value值
key值不存在时则实现添加功能
单独使用dict[key]可以根据key值查询对应的value值
根据key获取值,如果key在字典中不存在则报异常:keyError
d = {'a': '1', 'b': '2'}
d['c'] = '1' # 字典中不存在key=c的值,所以此时为添加操作
print(d) # 输出结果:{'a': '1', 'b': '2', 'c': '1'}
d['a'] = '2' # 字典中存在key=a的值,所以此时为修改操作
print(d) # 输出结果:{'a': '2', 'b': '2', 'c': '1'}
print(d['b']) # 输出结果:2
字典的常见内置函数:
获取字典的每一组元素,返回值为元组 dict.items()
d = {'a': '1', 'b': '2'}
print(d.items())
# 输出结果:
dict_items([('a', '1'), ('b', '2')])
获取字典的所有key值,返回值为元组 dict.keys()
d = {'a': '1', 'b': '2'}
print(d.keys())
# 输出结果:
dict_keys(['a', 'b'])
获取字典的所有value值,返回值为元组 dict.values()
d = {'a': '1', 'b': '2'}
print(d.values())
# 输出结果:
dict_values(['1', '2'])
根据key值获取字典中对应的value值 dict.get(key)
d = {'a': '1', 'b': '2'}
print(d.get('b'))
# 输出结果:
2
value如果能够取到值则返回字典中的值,如果取不到则返回default的值 dict.get(key,default)
d = {'a': '1', 'b': '2'}
print(d.get('c', '5'))
d = {'a': '1', 'b': '2', 'c': '3'}
print(d.get('c', '5'))
# 输出结果:
5 # 此时字典不存在key=c的值,则返回默认值5
3 # 此时字典存在key=c的值,则返回3
删除字典中key值对应的一组元素 del dict[key] 若删除的key不存在则会报错
d = {'a': '1', 'b': '2'}
del d['a']
print(d)
# 输出结果:
{'b': '2'}
根据key删除字典中的键值对,只要删除成功,则返回键值对的值value
pop的默认值,往往是在删除的时候没有找到对应的key,则返回default默认值" pop(key,default), 此时也不会报错
d = {'a': '1', 'b': '2'}
print(d.pop('c', '5'), d)
d = {'a': '1', 'b': '2', 'c': '3'}
print(d.pop('c', '5'), d)
# 输出结果:
5 {'a': '1', 'b': '2'}
3 {'a': '1', 'b': '2'}
删除字典中所有内容 dict.clear()
d = {'a': '1', 'b': '2'}
d.clear()
print(d)
# 输出结果:
{}
将一个可迭代的seq转成字典的,seq中的所有内容为key,value=default值 默认为None, dict.fromkeys(seq,[default])
l = [1,2,3]
print(d.fromkeys(l, 'a'))
# 输出结果:
{1: 'a', 2: 'a', 3: 'a'}
将dict2的值从末尾添加给dict1,若有重复的key值,则以dict2的为准 dict1.update(dict2)
d1 = {'a': '1', 'b': '2'}
d2 = {'a': '3', 'c': '4'}
d1.update(d2)
print(d1)
# 输出结果:
{'a': '3', 'b': '2', 'c': '4'}