文章目录
-
-
- 1、集合特点
- 2、集合创建
- 3、获取集合
- 4、修改集合
- 5、删除集合
- 6、集合操作
-
- 6.1并集
- 6.2交集
- 6.3差集
- 6.4对称差集
1、集合特点
1.1、集合是无序元素的集合,
1.2、集合中的元素不可重复
1.3、创建完成后,其中的元素不可更改
1.4、整个集合是可以更改,可以向其增加元素,也可以从中删除元素。
即:我们无法修改集合中的元素,但是我们可以对整个集合进行添加或者是删除等更改的操作
2、集合创建
集合的创建非常简单,只需要将以逗号分隔的元素放在花括号 {} 中,{元素1,元素2,元素3,…,元素n}
>>> set1={1,2,'e',4}
>>> type(set1)
<class 'set'>
>>> set2={1,2,'e',4,4,2}
>>> set2
{1, 2, 4, 'e'}
3、获取集合
- 通过 for 循环遍历集合的元素, 元素的顺序主要应用在索引中,集合中的元素是无序的,也就无法应用索引进行访问了
for novel in novels:
print(novel)
- 使用 in 关键字来判断集合中是否存在某个元素,如果元素在集合内,返回 True,如果元素不在集合内,返回 False
print('鸳鸯刀' in novels)
4、修改集合
- 方法:add() and update()
- 作用:add() 和 update() 都可用于向集合添加元素
- 语法规则:集合名.add(元素名)、集合名.update({元素1,元素2,…,元素n})
- 区别:add() 和 update() 的一个区别是 add() 添加的是一个元素;update() 添加的是集合或者是列表,添加的是多个元素
novels = {'飞狐外传', '雪山飞狐', '连城诀', '天龙八部', '射雕英雄传', '白马啸西风', '鹿鼎记'}
novels.add('笑傲江湖')
print(novels)
novels.add('书剑恩仇录')
print(novels)
novels.add('神雕侠侣')
print(novels)
novels.update({'侠客行', '倚天屠龙记'})
print(novels)
novels.update(['碧血剑', '鸳鸯刀'])
print(novels)
5、删除集合
- 方法:discard() and remove()
- 语法规则:集合名.discard()、集合名.remove()。
- 区别:这两个函数的区别在于,从集合中删除一个不存在的元素时,discard() 不会执行任何操作,而 remove() 会抛出一个异常
novels.discard('飞狐外传')
print(novels)
novels.remove('雪山飞狐')
print(novels)
6、集合操作
6.1并集
- 语法规则一:集合1.union(集合2)
print(novels_1.union(novels_2))
- 语法规则二: 集合1|集合2
print(novels_1 | novels_2)
6.2交集
- 语法规则一: 集合1.intersection(集合2)
print(novels_1.intersection(novels_2))
- 语法规则二:集合1 & 集合2
print(novels_1 & novels_2)
6.3差集
- 语法规则一:集合1.difference(集合2):即实现属于集合 1 不属于集合 2 的差集
print(novels_1.difference(novels_2))
// 当集合 novels_1 在 difference() 之前时,打印的是属于集合 novels_1 不属于集合 novels_2 的元素集合,集合 novels_2 在 difference() 之前时,打印的是属于集合 novels_2 不属于集合 novels_1 的元素集合
- 语法规则二: 集合1-集合2:即实现属于集合 1 不属于集合 2 的差集
print(novels_1 - novels_2)
6.4对称差集
- 说明:对称差集就是属于集合 A,不属于集合 B 的以及属于集合 B 不属于集合 A 的元素集合,就是集合 A 与集合 B 的并集减去集合 A 与集合 B 的交集
- 语法规则一:集合1.symmetric_difference(集合2)
print(novels_1.symmetric_difference(novels_2))
- 语法规则二:集合1^集合2
print(novels_1 ^ novels_2)