百科狗-知识改变命运!
--

python 中set

百变鹏仔1年前 (2023-11-16)阅读数 35#技术干货
文章标签元素

Python 中的 Set

Python 中的 Set 是一种无序且不重复的数据集合,它是由一个或多个元素组成的,每个元素都是唯一的。Set 可以用来进行集合运算,比如交集、并集、差集等等。Set 中的元素可以是任何可哈希的对象,例如数字、字符串、元组等等。

使用 Set 可以很方便地进行去重操作,同时也可以用来判断两个集合之间是否有交集。Set 是一个非常实用的数据结构,在 Python 中被广泛地应用于各种场景中。

Set 的创建

我们可以使用 set() 函数来创建一个空的 Set,也可以使用花括号 {} 来创建一个包含元素的 Set。

`python

# 创建一个空的 Set

set1 = set()

# 创建一个包含元素的 Set

set2 = {1, 2, 3, 4, 5}

Set 的操作
Set 支持一系列的操作,包括添加元素、删除元素、判断元素是否存在等等。
添加元素
我们可以使用 add() 方法来向 Set 中添加一个元素,如果添加的元素已经存在于 Set 中,那么不会有任何效果。
`python
# 创建一个空的 Set
set1 = set()
# 向 Set 中添加元素
set1.add(1)
set1.add(2)
set1.add(3)
print(set1) # {1, 2, 3}

删除元素

我们可以使用 remove() 方法来从 Set 中删除一个元素,如果要删除的元素不存在于 Set 中,会抛出 KeyError 异常。

`python

# 创建一个包含元素的 Set

set2 = {1, 2, 3, 4, 5}

# 从 Set 中删除元素

set2.remove(3)

print(set2) # {1, 2, 4, 5}

判断元素是否存在
我们可以使用 in 关键字来判断一个元素是否存在于 Set 中。
`python
# 创建一个包含元素的 Set
set2 = {1, 2, 3, 4, 5}
# 判断元素是否存在于 Set 中
print(3 in set2) # True
print(6 in set2) # False

Set 的集合运算

Set 支持一系列的集合运算,包括交集、并集、差集等等。

交集

我们可以使用 & 运算符或者 intersection() 方法来获得两个 Set 的交集。

`python

# 创建两个包含元素的 Set

set3 = {1, 2, 3, 4, 5}

set4 = {4, 5, 6, 7, 8}

# 获得两个 Set 的交集

print(set3 & set4) # {4, 5}

print(set3.intersection(set4)) # {4, 5}

并集
我们可以使用 | 运算符或者 union() 方法来获得两个 Set 的并集。
`python
# 创建两个包含元素的 Set
set3 = {1, 2, 3, 4, 5}
set4 = {4, 5, 6, 7, 8}
# 获得两个 Set 的并集
print(set3 | set4) # {1, 2, 3, 4, 5, 6, 7, 8}
print(set3.union(set4)) # {1, 2, 3, 4, 5, 6, 7, 8}

差集

我们可以使用 - 运算符或者 difference() 方法来获得两个 Set 的差集。

`python

# 创建两个包含元素的 Set

set3 = {1, 2, 3, 4, 5}

set4 = {4, 5, 6, 7, 8}

# 获得两个 Set 的差集

print(set3 - set4) # {1, 2, 3}

print(set3.difference(set4)) # {1, 2, 3}

扩展问答
1. Set 和 List 的区别是什么?
Set 和 List 都是 Python 中常用的数据结构,它们之间的区别主要有以下几点:
- Set 是无序的,而 List 是有序的。
- Set 中的元素是不重复的,而 List 中的元素可以重复。
- Set 支持一系列的集合运算,比如交集、并集、差集等等,而 List 不支持这些操作。
2. Set 中的元素可以是任何类型吗?
Set 中的元素可以是任何可哈希的对象,包括数字、字符串、元组等等。Set 中的元素必须是不可变的,因为 Set 是基于哈希表实现的,如果元素是可变的,那么在修改元素的值时可能会破坏哈希表的结构。
3. Set 是否支持切片操作?
Set 不支持切片操作,因为它是无序的。如果需要使用切片操作,可以先将 Set 转换为 List,然后再进行切片操作。
`python
# 创建一个包含元素的 Set
set5 = {1, 2, 3, 4, 5}
# 将 Set 转换为 List,并进行切片操作
list5 = list(set5)
print(list5[1:3]) # [2, 3]

4. Set 中的元素是否可以修改?

Set 中的元素必须是不可变的,因此无法直接修改 Set 中的元素。如果需要修改元素的值,可以先将元素从 Set 中删除,然后再添加新的元素。

`python

# 创建一个包含元素的 Set

set6 = {1, 2, 3, 4, 5}

# 从 Set 中删除元素,并添加新的元素

set6.remove(3)

python 中set

set6.add(6)

print(set6) # {1, 2, 4, 5, 6}

Set 是 Python 中非常实用的数据结构,它可以用来进行去重操作、判断两个集合之间是否有交集等等。Set 支持一系列的集合运算,包括交集、并集、差集等等。在使用 Set 的时候,需要注意元素必须是不可变的,同时也需要注意 Set 是无序的。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)