集合的定义

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

image-20200226201438071

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&B)

image-20200226202301707

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函数:验证元素是否在集合中。使用同列表、字典、元组、字符串

集合中常用方法

  • clear():移除集合中所有元素,同列表,字典
a = set(range(10))  # set把range转集合
b = set(range(6, 12))
a.clear()
print(a)
# 输出结果
"""
set()
"""
  • copy():复制集合,同列表
a = set(range(10))  # set把range转集合
b = a.copy()
print(b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
"""
  • union:返回两个集合并集,和上面的|一样
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}
"""
最后修改日期:2020年9月15日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。