集合的定义
- 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
- 集合的创建方法:大括号或者set函数
- 集合是无序的,而列表和元组是有序的
- 集合中的元素不存在重复(所以集合常用来数据去重)
a = {1, 2, 3} # 注意:集合只有逗号,没得冒号
b = set('abcde')
print(a, '\n', b)
# 输出结果
"""
{1, 2, 3}
{'a', 'c', 'e', 'd', 'b'}
"""
集合的查看方法
集合元素的增加
- 利用add方法可以增加元素
- 利用update方法也可以增加元素
- add用于增加单个元素,update用于增加多个元素,且update增加元素的格式为列表或者元组或者字典
a = {1, 2, 3} # 注意:集合只有逗号,没得冒号
a.add(4)
a.update([5]) # 用update增加单个元素也需要使用列表格式
print(a)
# 输出结果
"""
{1, 2, 3, 4, 5}
"""
集合元素的删除
- 使用remove方法移除特定元素(list中也有这个方法)
- 使用pop方法随机移除一个元素(集合没有序号,所以只能随机移除)
- 使用discard移除特定元素,如果元素不存在不会报错
a = set(range(10)) # set把range转集合
a.remove(9)
a.pop() # 随机删除
a.discard(100) # 这个元素不存在,不会报错
print(a)
# 输出结果
"""
{1, 2, 3, 4, 5, 6, 7, 8}
"""
集合的数学运算符
- Python中的集合和数学中的集合基本使用方法一致
-
:用于求两个集合的差集(绿色剩余部分表示A-B)

a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a-b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5}
"""
|
:用于求两个集合的并集(绿色部分为A|B,可以理解为A或者B)

a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a | b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
"""

a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a & b)
# 输出结果
"""
{8, 9, 6, 7}
"""
^
:用于求两个集合不同时存在的元素(可以翻译为A否B,上面图黄色加红色就是了)
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a ^ b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 10, 11}
"""
集合中常用函数
- len函数:计算集合中元素个数。使用同列表、字典、元组、字符串
- in函数:验证元素是否在集合中。使用同列表、字典、元组、字符串
集合中常用方法
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
a.clear()
print(a)
# 输出结果
"""
set()
"""
a = set(range(10)) # set把range转集合
b = a.copy()
print(b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
"""
a = set(range(10)) # set把range转集合
b = set(range(6, 13))
print(a.union(b))
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
"""
- difference:返回两个集合的差集,和上面的
-
一样
a = set(range(10)) # set把range转集合
b = set(range(6, 13))
print(a.difference(b))
# 输出结果
"""
{0, 1, 2, 3, 4, 5}
"""
- intersection:返回两个集合的交集,和上面的
&
一样
a = set(range(10)) # set把range转集合
b = set(range(6, 13))
print(a.intersection(b))
# 输出结果
"""
{8, 9, 6, 7}
"""
- symmetric_difference:返回两个不相同的元素,和上面的
^
一样
a = set(range(10)) # set把range转集合
b = set(range(6, 13))
print(a.symmetric_difference(b))
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 10, 11, 12}
"""
留言