Skip to content

集合

类型名称Set,标识符{},是一个无序的不重复元素序列。

使用场景

  • 存储多个不希望重复的数据
  • 需要进行交集、并集、差集等常见的集合操作

可以按照下面代码所示的方式来创建和使用集合。

Python
# 创建集合的字面量语法
set1 = {1, 2, 3, 3, 3, 2}
print(set1)
print('Length =', len(set1))
# 创建集合的构造器语法(面向对象部分会进行详细讲解)
set2 = set(range(1, 10))
set3 = set((1, 2, 3, 3, 2, 1))
print(set2, set3)
# 创建集合的推导式语法(推导式也可以用于推导集合)
set4 = {num for num in range(1, 100) if num % 3 == 0 or num % 5 == 0}
print(set4)

添加元素

方式一:将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。语法格式如下:

s.add( x )

Python
# 添加元素
set1.add(4)
print(set1)

方式二:参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开。

Python
# 添加元素
set2.update([11, 12])
print(set2)
set2.update([1,4],[5,6])
print(set2)

移除元素

方式一:将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。语法格式如下:

s.remove( x )

Python
# 移除元素
'''
不存在会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
'''
set2.remove(4) #

方式二:如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )

Python
# 移除元素
set2.discard(5)
print(set2)
set2.discard(19)
print(set2)

方式三: 随机删除集合中的一个元素,每次删除的不一样。语法格式如下:

s.pop()

Python
# 移除元素
print(set3.pop())
print(set3)

print(set3.pop())
print(set3)

print(set3.pop())
print(set3)

集合的成员、交集、并集、差集等运算。

Python
# 集合的交集、并集、差集、对称差运算
# 交集
print(set1 & set2)
print(set1.intersection(set2))
# 并集
print(set1 | set2)
print(set1.union(set2))
# 差集
print(set1 - set2) # 如果没有在set1中却不在set2中的值,那么输出为空集set()
print(set1.difference(set2))
# 补集
print(set1 ^ set2)
print(set1.symmetric_difference(set2))

# 判断子集和超集
print(set2 <= set1)
# print(set2.issubset(set1))
print(set3 <= set1)
# print(set3.issubset(set1))
print(set1 >= set2)
# print(set1.issuperset(set2))
print(set1 >= set3)
# print(set1.issuperset(set3))

练习

  1. 创建两个集合,演示集合的并集、交集和差集操作。

Released under the MIT License