欢迎访问宙启技术站
智能推送

Python中的set()函数可以用来做什么?

发布时间:2023-06-01 12:15:16

在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编程效率,特别是在对数据进行去重或集合运算的时候。