![7a8f1f11ab655a5ef943d7a14ce53ec7.png](https://i-blog.csdnimg.cn/blog_migrate/0e494ddeeada7ab770801425b95f2506.jpeg)
今天这篇文章,我们来学习两个同样很常见并且很有用的数据结构:字典(dict)和集合(set)。字典和集合在 Python 被广泛使用,并且性能进行了高度优化,其重要性不言而喻。
字典(dict)
什么是字典
字典,dict全称dictionary,在其他语言中也称为map,是一系列无序元素的组合,其长度大小可变,元素可以任意地删减和改变。
字典的元素是一对键(key)和值(value)的配对,和列表/元组相比,字典的性能更优,尤其是对于查找、添加和删除操作,字典都能在常数时间复杂度内完成。
字典的创建
字典的创建,通常有下面几种方式:
d1 = {'name': 'jack', 'age': 20, 'gender': 'male'}
d2 = dict({'name': 'jack', 'age': 20, 'gender': 'male'})
d3 = dict([('name', 'jack'), ('age', 20), ('gender', 'male')])
d4 = dict(name='jack', age=20, gender='male')
d1 == d2 == d3 == d4
True # 返回True,说明创建的4个字典是一样的
元素访问
刚才我们学习了如何创建字典,我们再来看元素访问的问题。字典访问可以直接索引键,如果不存在,就会抛出异常:
d = {'name': 'jack', 'age': 20, 'gender': 'male'}
d['name']
'jack'
d['location']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'location'
要避免出现key不存在的错误,我们可以通过in来判断key是否存在
d = {'name': 'jack', 'age': 20}
'name' in d
True
'location' in d
False
也可以使用dict提供的` get(key, default) `函数来进行索引。如果键不存在,调用` get() `函数可以返回`None`, 或者返回自己指定的一个默认值。比如下面这个示例,返回了
d = {'name': 'jack', 'age': 20, 'gender': 'male'}
d.get('name')
'jack'
d.get('location', 'null')
'null'
注意:返回None的时候Python的交互环境不显示结果。
增、删、更新操作
字典支持增加、删除、更新等操作。
# 增加
d = {'name': 'jason',