一种可变容器模型,且可存储任意类型对象
由一组键(key)值(value)对组成, {key1:value1, key2:value2,…}
用{}表示,键值对用逗号分隔,键与值用冒号分隔,键唯一(数字、字符串、元组)
1、访问字典中的值
与列表不同的是,列表使用索引获取元素,字典使用key获取value值
dict[key]
>>> dict1 = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
>>> type(dict1)
<class 'dict'>
>>> dict1['k1']
'v1'
>>> dict1['k3']
'v3'
2、添加、更新键值对
dict[key] = value
>>> dict1 = {'name': 'joker', 'sex':'男'}
>>> dict1
{'name': 'joker', 'sex': '男'}
>>> dict1['age'] = 26
>>> dict1['sex'] = 'man'
>>> dict1
{'name': 'joker', 'sex': 'man', 'age': 26}
3、删除字典及键值对
del dict
del dict[key]
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> del dict1['age']
>>> dict1
{'name': 'joker', 'sex': '男'}
>>> del dict1
>>> dict1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dict1' is not defined
4、获取字典中所有键的迭代器
dict.keys()
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.keys()
dict_keys(['name', 'sex', 'age'])
5、获取字典中所有值的迭代器
dict.values()
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.values()
dict_values(['joker', '男', 26])
6、返回键值对的元组列表
dict.items()
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.items()
dict_items([('name', 'joker'), ('sex', '男'), ('age', 26)])
7、返回指定键的值,没有返回None
与dict[key]功能类似,但是dict[key]获取的key不存在会报错,而dict.get(key)中key不存在返回None
dict.get(key)
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1['hoppy']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'hoppy'
>>> print(dict1.get('hoppy'))
None
8、删除字典中指定键的值,并返回该值
dict.pop(key)
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.pop('sex')
'男'
>>> dict1
{'name': 'joker', 'age': 26}
9、键不存在,添加该键,值为None
dict.setdefault(key)
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.setdefault('hoppy')
>>> dict1
{'name': 'joker', 'sex': '男', 'age': 26, 'hoppy': None}
10、将指定字典更新到当前字典
dict1.update(dict2)
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict2 = {'hoppy':'sing'}
>>> dict1.update(dict2)
>>> dict1
{'name': 'joker', 'sex': '男', 'age': 26, 'hoppy': 'sing'}
11、清空字典内所有元素
dict.clear()
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1.clear()
>>> dict1
{}
12、复制字典
dict.copy()
>>> dict1 = {'name': 'joker', 'sex': '男', 'age': 26}
>>> dict2 = dict1.copy()
>>> dict2
{'name': 'joker', 'sex': '男', 'age': 26}
>>> dict1 == dict2
True