联想说 Python 基础 13 - 字典与集合
字典
从前面来看,符合数据类型都大差不差。那为什么还要这么多数据类型呢?
因为不同的复合类型有各自的特点,而我们主要就是对这些特点的运用。
字典类型
字典类型,就我个人来说十分只喜欢,首先看一下格式:
{键: 值,......}
比如我们定义一个字典:
zd = {'name': 'alice', 'age': 16, 'sex': 'girl'}
相对于列表来说
lb = ['alice', 16, 'girl']
字典能更好的体现这个值的含义,比如 alice 前面是 name,这表示姓名。name 是键,alice 是值,整体我们称为键值对,字典就是由键值对组成的。
特点
- 无序性:字典中的元素是无序的
- 可变性:字典是可变的,可以动态地添加、修改和删除键值对
- 键的唯一性:字典中的键是唯一的,每个键都对应一个唯一的值
字典常用方法
查询
-
in
注意,这里的 in 是用来判断 key 的。
-
len()
-
get(key):获取键所对应的值
除了 get 方法,还可以使用
字典[键]的方式获取,不过如果字典中没有这个键,就会报错。
增 | 改
增和改的方式一样,都是通过赋值来实现。如果是增,只需要给字典中没有的键就行,而改则是对已有的键赋值。例如:
# 增
zd['score'] = 666
print(zd) # {'name': 'alice', 'age': 16, 'sex': 'girl', 'score': 666}
# 改
zd['name'] = "kitty"
print(zd) # {'name': 'kitty', 'age': 16, 'sex': 'girl', 'score': 666}
删除
-
del:删除元素
del zd['sex'] print(zd) # {'name': 'alice', 'age': 16} -
clear():清空字典
zd.clear() print(zd) # {}
键值
-
values():获取所有的值
print(zd.values()) # dict_values(['alice', 16, 'girl']) -
keys():获取所有的键
print(zd.keys()) # dict_keys(['name', 'age', 'sex']) -
items():返回字典里包含的键值对
print(zd.items()) # dict_items([('name', 'alice'), ('age', 16), ('sex', 'girl')])
遍历
不是说共同的东西不再讲了吗,遍历为什么又跑出来了?
那是因为在字典中的遍历有点不一样,它里面有 key 和 value,如果遍历的话, 得到的是 key 还是 value?
验证:
for z in zd:
print(z)
# 结果:
name
age
sex
结论:遍历得到的是 key 的值,所以如果要得到值,则还需要通过 字典名称[遍历的key] 得到。
集合
集合类型
集合是一种特殊的类型,最特殊的点就在于它是无序不重复的。
特点:
- 无序性:集合中的元素没有固定的顺序
- 不重复性:集合中的元素是唯一的,不会有重复的元素
- 可变性:集合是可变的,可以添加、删除或更改元素
- 运算方法:集合支持交集(&)、并集(|)、差集(-)等数学运算
- 没有长度:由于集合中的元素不重复且无序,所以无法通过内置的len()函数获取集合的长度
格式:
# 创建空集合
集合名称 = set()
# 创建集合并添加元素
集合名称 = {值......}
注意,不能直接使用 集合名称 = {} 表示空集合,因为 {} 还用在字典上,默认也表示字典。
集合常用方法
查询
由于集合的无序,没有索引也没有 key,也就不能通过索引来获取里面的值,因此没修改和查询的查找。
这里查询仅仅是查询集合的基本信息:
- len()
- in
不过都是前面说到过的,不再说了。
添加
-
add():添加元素
jh.add('a') print(jh) # {1, 2, 3, 4, 5, 6, 'a'} -
update():添加元素,添加的是可迭代的对象
它会将可迭代对象中的每个元素单独添加到集合中:
jh.update('c') print(jh) # {1, 2, 3, 4, 5, 6, 'c'} jh.update([11, 12, 13]) print(jh) # {1, 2, 3, 4, 5, 6, 11, 12, 13, 'c'}
删除
-
remove():移除元素,当元素不存在会出现 error
jh.remove(1) print(jh) # {2, 3, 4, 5, 6} -
discard() :移除元素,当元素不存在,不会出现 error
jh.discard(2) print(jh) # {1, 3, 4, 5, 6}
集合的关系运算符
集合之间运算符主要有求交集(&)、并集(|)和差集(-)。
这几个的含义应该就不用多说了吧,和数学里一样的。咱直接看示例:
# 交集 &
jh2 = {7, 8, 9, 4, 5, 6}
print(jh & jh2) # {4, 5, 6}
# 并集 |
print(jh | jh2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
# 差集 -
print(jh - jh2) # {1, 2, 3}
.

浙公网安备 33010602011771号