定义
一种可变的容器模型,可以存储任意类型的数据
以键(key):值(value)对的方式进行数据存储,键和值之间用冒号分隔,每个键值对之间用英文逗号“,”分隔
整个字典包括在大括号中“{}”
键必须是唯一的且是不可变类型,如字符串、数字或元组
字典的底层使用了hash表来关联key和value,因此字典中的数据是无序的
这样数据查找和插入的速度极快,不会随着key的增加而变慢,但需要占用的内存较多
字典(dict)是一种以空间换取时间的数据结构,应用于需要快速查找的场景
创建字典
dict1 = {1: 'a', 2: 'b'}
print(dict1)
dict2 = dict(((1, 2), (3, 4), ('q', 'z')))
print(dict2)
访问字典值
dict1 = {1: 'a', 2: 'b'}
print(dict1[1])
修改字典
dict2 = {1: 3, 2: 4, 'q': 'z'}
dict2['a'] = 'b'
print(dict2)
del dict2['a']
print(dict2)
dict2[1] = 10
print(dict2)
字典的内置函数和方法
# 删除字典内所有元素
dict_name.clear()
# 返回一个字典的浅复制
dict_name.copy()
# 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(可以为空)
dict.fromkeys(seq, val)
# 返回指定键key的值,如果值不在字典中返回key1值
dict_name.get(key, key1)
# 以列表的形式返回字典的键-值对的元组数组
dict_name.items()
# 以列表的形式返回字典所有的键
dict_name.keys()
# 以列表返回字典中的所有值
dict_name.values()
# 删除key并返回它的值
dict_name.pop(key)
# 返回并删除字典中的最后一对键和值
dict_name.popitem()
# 和get()类似, 但如果键key不已经存在于字典中,将会添加键并将值设为key1
dict_name.setdefault(key, key1)
# 把字典dict2的键/值对更新到dict里
dict_name.update(dict2)
字典的遍历
dict2 = {1: 3, 2: 4, 'q': 'z'}
for key, value in dict2.items():
print(key, value)