Python中的set()函数可以用来做什么?
在Python中,集合(set)是一种无序、不重复的数据结构。集合中的元素必须是可哈希的,即不能是可变对象如列表和字典。set()函数是Python内置函数之一,主要用于创建集合、删除重复元素、进行集合运算等操作。
1. 创建集合
set()函数可以用于创建一个空集合,也可以将其他序列类型如字符串、列表和元组转换成集合。
① 创建空集合:
s = set()
print(s)
# set()
② 将字符串转换成集合:
s = set('abcdef')
print(s)
# {'c', 'f', 'e', 'b', 'a', 'd'}
③ 将列表转换成集合:
s = set([1, 2, 3, 2])
print(s)
# {1, 2, 3}
④ 将元组转换成集合:
s = set((1, 2, 3, 2))
print(s)
# {1, 2, 3}
2. 删除重复元素
最常见的用途之一是使用set()函数删除序列中的重复元素。通过将序列转换成集合,即可去除序列中的重复项。
a = [1, 2, 3, 2, 4, 5, 3]
b = set(a)
print(b)
# {1, 2, 3, 4, 5}
通过这种方法,我们可以很容易地对列表、元组、字符串等序列类型进行去重操作。
3. 集合运算
在集合中,支持多种基本运算,包括并集(|)、交集(&)、差集(-)、对称差集(^)等。下面分别介绍这些操作。
① 并集
并集是指包含两个集合所有元素的集合,语法为set1 | set2,其中set1和set2是两个集合。
a = {1, 2, 3}
b = {2, 3, 4}
c = a | b
print(c)
# {1, 2, 3, 4}
② 交集
交集是指两个集合中都存在的元素组成的集合,语法为set1 & set2,其中set1和set2是两个集合。
a = {1, 2, 3}
b = {2, 3, 4}
c = a & b
print(c)
# {2, 3}
③ 差集
差集是指只属于某一个集合而不属于另一个集合的元素组成的集合,语法为set1 - set2,其中set1和set2是两个集合。
a = {1, 2, 3}
b = {2, 3, 4}
c = a - b
print(c)
# {1}
④ 对称差集
对称差集是指两个集合非交集部分组成的集合,语法为set1 ^ set2,其中set1和set2是两个集合。
a = {1, 2, 3}
b = {2, 3, 4}
c = a ^ b
print(c)
# {1, 4}
4. 判断子集和超集
集合中还有两个常用函数issubset()和issuperset(),用于判断一个集合是否是另一个集合的子集或超集。
① 判断子集
issubset()函数用于判断一个集合是否是另一个集合的子集,语法为set1.issubset(set2),其中set1和set2分别表示两个集合。
a = {1, 2, 3}
b = {2, 3, 4}
print(a.issubset(b))
# False
print(a.issubset({1, 2, 3, 4, 5}))
# True
从上面的例子可以看出,a不是b的子集,但是a是{1,2,3,4,5}的子集。
② 判断超集
issuperset()函数用于判断一个集合是否是另一个集合的超集,语法为set1.issuperset(set2),其中set1和set2分别表示两个集合。
a = {1, 2, 3}
b = {2, 3}
print(a.issuperset(b))
# True
print({1, 2, 3, 4, 5}.issuperset(a))
# True
从上面的例子可以看出,a是b的超集,同时{1, 2, 3, 4, 5}也是a的超集。
综上所述,set()函数在Python中具有多种用途,可以用于创建集合、删除重复元素、进行集合运算等操作。熟练使用set()函数可以提高Python编程效率,特别是在对数据进行去重或集合运算的时候。
