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

python中set的用法

是丫丫呀1年前 (2023-11-17)阅读数 23#技术干货
文章标签元素

Python中的set是一种无序且不重复的数据类型,可以用来存储多个元素,常用于去重或者判断某个元素是否存在。set可以使用大括号{}或者set()函数来创建,元素之间用逗号隔开。

例如,创建一个包含1、2、3的set:

`python

my_set = {1, 2, 3}

或者使用set()函数:
`python
my_set = set([1, 2, 3])

set的主要特点是元素不重复,如果重复添加相同的元素,set只会保留一个。例如:

`python

my_set = {1, 2, 3, 3, 2, 1}

print(my_set) # 输出{1, 2, 3}

set还支持一些常用的集合操作,例如并集、交集、差集等。下面是一些常用的set操作:
## 1. 并集
并集是指两个集合中所有元素的集合。可以使用union()方法或者|运算符来实现。例如:
`python
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用union()方法
set3 = set1.union(set2)
print(set3)  # 输出{1, 2, 3, 4, 5}
# 使用|运算符
set4 = set1 | set2
print(set4)  # 输出{1, 2, 3, 4, 5}

## 2. 交集

交集是指两个集合同的元素的集合。可以使用intersection()方法或者&运算符来实现。例如:

`python

set1 = {1, 2, 3}

set2 = {3, 4, 5}

# 使用intersection()方法

set3 = set1.intersection(set2)

print(set3) # 输出{3}

# 使用&运算符

set4 = set1 & set2

print(set4) # 输出{3}

## 3. 差集
差集是指一个集合中不包含另一个集合中的元素的集合。可以使用difference()方法或者-运算符来实现。例如:
`python
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 使用difference()方法
set3 = set1.difference(set2)
print(set3)  # 输出{1, 2}
# 使用-运算符
set4 = set1 - set2
print(set4)  # 输出{1, 2}

## 4. 对称差集

对称差集是指两个集合中不相同的元素的集合。可以使用symmetric_difference()方法或者^运算符来实现。例如:

`python

set1 = {1, 2, 3}

set2 = {3, 4, 5}

# 使用symmetric_difference()方法

set3 = set1.symmetric_difference(set2)

print(set3) # 输出{1, 2, 4, 5}

# 使用^运算符

set4 = set1 ^ set2

print(set4) # 输出{1, 2, 4, 5}

## 5. 判断元素是否存在
可以使用in关键字来判断一个元素是否存在于set中。例如:
`python
my_set = {1, 2, 3}
if 1 in my_set:
    print("元素1存在于set中")
else:
    print("元素1不存在于set中")

## 6. 添加元素

可以使用add()方法来向set中添加一个元素,如果添加的元素已经存在于set中,不会有任何变化。例如:

python中set的用法

`python

my_set = {1, 2, 3}

my_set.add(4)

print(my_set) # 输出{1, 2, 3, 4}

## 7. 删除元素
可以使用remove()方法来删除set中的一个元素,如果元素不存在于set中,会抛出KeyError异常。可以使用discard()方法来删除set中的一个元素,如果元素不存在于set中,不会有任何变化。例如:
`python
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set)  # 输出{1, 3}
my_set.discard(4)
print(my_set)  # 输出{1, 3}

## 8. 清空set

可以使用clear()方法来清空set中的所有元素。例如:

`python

my_set = {1, 2, 3}

my_set.clear()

print(my_set) # 输出set()

扩展问答:

1. set中的元素可以是任何类型吗?

答:set中的元素必须是可哈希的(immutable),因此可以是数字、字符串、元组等不可变类型。不可哈希的类型,例如列表、字典等可变类型,不能作为set的元素。

2. set中的元素是按照什么顺序存储的?

答:set是一种无序的数据类型,因此set中的元素没有固定的顺序。如果需要按照一定的顺序遍历set中的元素,可以使用sorted()函数或者for循环来实现。

3. set和list有什么区别?

答:set和list都可以用来存储多个元素,但是set中的元素不重复,而list中的元素可以重复。set支持集合操作(如并集、交集、差集等),而list不支持这些操作。set的查询速度比list快,但是set需要更多的内存空间来存储元素。

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

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

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

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