Python 集合(set)详解

Python 集合(set)详解

Python 集合(set)详解

什么是集合(set)

在Python中,集合(set)是一种无序、不重复的数据集合。它类似于数学中的集合概念,可以用于对数据进行去重、交集、并集等操作。

集合中的元素必须是不可变对象,例如数字、字符串、元组等,而不能包含可变对象,例如列表、字典等。

创建集合

在Python中,可以使用花括号 {} 或者 set() 函数来创建一个集合。

# 使用花括号创建集合
s = {1, 2, 3, 4, 5}
print(s)
# 输出:{1, 2, 3, 4, 5}

# 使用set()函数创建集合
s = set([1, 2, 3, 4, 5])
print(s)
# 输出:{1, 2, 3, 4, 5}
Python

集合操作

添加元素

可以使用 add() 方法来向集合中添加元素,如果元素已经存在于集合中,则不会进行任何操作。

s = {1, 2, 3}
s.add(4)
print(s)
# 输出:{1, 2, 3, 4}

s.add(3)
print(s)
# 输出:{1, 2, 3, 4}
Python

删除元素

可以使用 remove() 方法来删除集合中的元素,如果元素不存在于集合中,则会抛出 KeyError 错误。另外,可以使用 discard() 方法来删除集合中的元素,如果元素不存在于集合中,则不会报错。

s = {1, 2, 3}
s.remove(2)
print(s)
# 输出:{1, 3}

s.discard(3)
print(s)
# 输出:{1}
Python

集合运算

可以使用交集、并集等运算符和方法对集合进行操作。

  • 交集:& 或者 intersection()
  • 并集:| 或者 union()
  • 差集:- 或者 difference()
  • 对称差集:^ 或者 symmetric_difference()
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

# 交集
print(set1 & set2)
# 输出:{3, 4}
print(set1.intersection(set2))
# 输出:{3, 4}

# 并集
print(set1 | set2)
# 输出:{1, 2, 3, 4, 5, 6}
print(set1.union(set2))
# 输出:{1, 2, 3, 4, 5, 6}

# 差集
print(set1 - set2)
# 输出:{1, 2}
print(set1.difference(set2))
# 输出:{1, 2}

# 对称差集
print(set1 ^ set2)
# 输出:{1, 2, 5, 6}
print(set1.symmetric_difference(set2))
# 输出:{1, 2, 5, 6}
Python

集合方法

clear()

clear() 方法用于清空集合中的所有元素。

s = {1, 2, 3}
s.clear()
print(s)
# 输出:set()
Python

copy()

copy() 方法用于复制一个集合。

s = {1, 2, 3}
s2 = s.copy()
print(s2)
# 输出:{1, 2, 3}
Python

pop()

pop() 方法用于随机移除一个元素,并返回该元素的值。因为集合是无序的,所以被移除的元素是随机的。

s = {1, 2, 3, 4, 5}
print(s.pop())
# 可能输出:1
Python

update()

update() 方法用于将另一个集合或可迭代对象的元素添加到集合中。

s = {1, 2, 3}
s.update([4, 5, 6])
print(s)
# 输出:{1, 2, 3, 4, 5, 6}
Python

isdisjoint()

isdisjoint() 方法用于判断两个集合是否没有交集,如果没有交集返回 True,否则返回 False

set1 = {1, 2, 3}
set2 = {4, 5, 6}
print(set1.isdisjoint(set2))
# 输出:True

set3 = {3, 4, 5}
print(set1.isdisjoint(set3))
# 输出:False
Python

issubset() 和 issuperset()

issubset() 方法用于判断一个集合是否是另一个集合的子集,issuperset() 方法用于判断一个集合是否是另一个集合的超集。

set1 = {1, 2, 3}
set2 = {1, 2}
print(set2.issubset(set1))
# 输出:True
print(set1.issuperset(set2))
# 输出:True
Python

总结

集合(set)是Python中一种非常有用的数据结构,适合用于去重和集合运算。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册