目录
什么是集合?
创建集合
小结
集合的增
集合的删
集合的查
集合的运算
什么是集合?
集合在Python中是一个无序的数据值集合.
创建集合
- 直接赋值,使用花括号 {}
- 使用 set 创建空集合
1. 直接赋值
Set = {1,2,3,4,5}
print(Set)
print(type(Set))
>>> {1, 2, 3, 4, 5}
2. 使用 set 创建空集合
Set = set() print(type(Set)) >>>
3. 集合不能是可变类型
Set = {1,2,3,[1,2,3]}
print(Set)
>>> Set = {1,2,3,[1,2,3]}
TypeError: unhashable type: 'list'
4. 集合中值是唯一的
Set = {1,2,3,1}
print(Set)
>>> {1, 2, 3}
小结
- 集合是无序的
- 集合中的元素是唯一的
- 集合自身可以被修改,但是集合中不可变数据是不能被修改的
集合的增
1. 使用 add 方法
Set = {'张三', '李四', '王五'}
Set.add('赵六')
print(Set)
>>> {'张三', '李四', '赵六', '王五'}
2. 使用 update 方法
update: 将集合中的元素插入到另一个集合中。
Set = {'张三', '李四', '王五'}
new = {'赵六', '王蛋'}
Set.update(new)
print(Set)
>>> {'王蛋', '张三', '赵六', '王五', '李四'}
集合的删
1. del 方法
del: 删除整个集合
Set = {'张三', '李四', '王五'}
del Set
print(Set)
>>> NameError: name 'Set' is not defined
2. pop 方法
pop: 随机删除
Set = {'张三', '李四', '王五'}
Set.pop()
Set.pop()
print(Set)
# 随机删除
>>> 李四
3. remove 方法
remove: 移除指定元素,当移除的元素不存在时报错
Set = {'张三', '李四', '王五'}
Set.remove('张三')
print(Set)
>>> {'李四', '王五'}
4. discard 方法
discard: 移除指定元素,当移除元素不存在时不报错,原来的集合不改变
Set = {'张三', '李四', '王五'}
Set.discard('张三')
print(Set)
>>> {'李四', '王五'}
集合的查
集合的查找方法依旧是使用 in 和 not in 查询,这里就不再演示了。
集合的运算
交集
函数 描述 intersection() 移除俩个集合都存在的元素,返回一个存在相同元素的新集合 intersection_update() 移除俩个集合都存在的元素,没有返回值
1. intersection 方法
移除后原来的集合不发生改变
a = {'武松', '武大', '潘金莲', '魔力红'}
b = {'武松', '武大', '潘金莲', '蒋文龙'}
c = a.intersection(b)
print(c)
print(a)
print(b)
>>> {'武大', '武松', '潘金莲'}
{'魔力红', '潘金莲', '武松', '武大'}
{'蒋文龙', '潘金莲', '武松', '武大'}
2. intersection_update 方法
集合 a 存储的是俩个集合中交集的元素,而 集合 b 则不发生如何变化。
A = {'武松', '武大', '潘金莲', '魔力红'}
B = {'武松', '武大', '潘金莲', '蒋文龙'}
a.intersection_update(b)
print(A)
print(B)
>>> {'潘金莲', '武大', '武松'}
{'蒋文龙', '潘金莲', '武大', '武松'}
并集
函数 描述 union() 方法返回俩个集合的并集,即包含了所有集合的元素,重复的元素只出现一次
1. union 方法
因为集合中的值是唯一的,所有重复元素只出现一次,集合 a b 保持不变。
a = {'武松', '武大', '潘金莲', '魔力红'}
b = {'武松', '武大', '潘金莲', '蒋文龙'}
c = a.union(b)
print(c)
print(b)
>>> {'武大', '魔力红', '潘金莲', '蒋文龙', '武松'}
{'武大', '武松', '潘金莲', '蒋文龙'}
差集
函数 描述 difference() 移除俩个集合中都存在的元素,方法返回一个移除都存在的元素后的新集合 difference_update() 移除俩个集合都存在的元素,没有返回值
1. difference 方法
集合 a b 保持不变
a = {'武松', '武大', '潘金莲', '魔力红'}
b = {'武松', '武大', '潘金莲', '蒋文龙'}
c = a.difference(b)
print(c)
>>> {'魔力红'}
2. difference_update 方法
a = {'武松', '武大', '潘金莲', '魔力红'}
b = {'武松', '武大', '潘金莲', '蒋文龙'}
a.difference_update(b)
print(a)
>>> {'魔力红'}


