Python中的set集合

本文详细介绍了Python中集合(set)的定义、特性及操作方法,包括创建、添加、删除元素,以及交集、并集、差集等数学集合运算。同时,对比了set与dict的区别,并提供了实际代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合(set)是0个或多个对想引用的无序集合,这些对象所引用都是哈希运算的
集合是可变的。其中的项是无序的,因此,没有索引位置概念
集合中,任何元素都没有重复
set和dict类似,是一组key的集合,但不存储value,且在set中没有重复的key

4.1集合常用操作
1.创建集合
可以调用集合的构造函数来创建一个集合。必须使用set构造函数。set构造函数至多有一个参数。
没有参数,set会创建空集

>>>nullSet=set()
>>>nullSet

set()
提供一个str作为输入集合,创建一个set

>>>a_set=set('abcd')
>>>a_set

{'a','c','b','d'}

提供一个list作为输入集合,创建一个set

>>>s=set([1,2,3])
>>>s不会报错。

{1,2,3}

重复元素在set中将会自动过滤

2.添加元素
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

>>>s.add(4)
>>>s
{1,2,3,4}
>>>s.add(4)
>>>s

3.删除元素
通过remove(key)可以删除元素

>>>s.remove(4)
>>>s
{1,2,3}

discard(key)也可以删除元素,不同的是,如果删除的元素不在集合中,remove会报错,discard不会报错

>>>s.remove(7)
报错
但是discard不会报错

clear()删除集合的所有元素(使它成为空集)

4.典型的集合运算符
len():和所有集合类型一样,len函数可以确定集合中元素数量
in:判断某元素是否在集合中,in运算符根据是否中返回布尔值True或False
for:和所有集合类型一样,for语句能能够遍历集合中的元素

5.典型的数学集合运算
1.交集
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义的交集、并集等操作
intersection方法创建新集合,该集合为两个集合的公共部分。进行交集运算时集合的顺序不重要。“&”也表示取交集。

>>>s1=set([1,2,3])
>>>s2=set([2,3,4])
>>>s1.imtersection(s2)
{2,3}
>>>s1&s2
{2,3}

2并集
union方法创建新集合,该集合包含两个集合中所有的元素
并集运算中两个集合的顺序也不重要
"|"也表示取并集

>>>s1.union(s2)
>>>s1|s2

3.差集
difference方法收集在调用集合但不在参数集合中的元素
不同于其他运算,差集运算时不可交换的

4.对称差
对称差运算中集合的顺序不重要
它收集两个结合那些不共享的元素

>>>s1.symmentric_difference(s2)

5.子集和超集
如果集合A的每一个元素都是集合B中的元素,称集合A是集合B的子集。超集是相反的意思,仅当集合B是集合A的一个子集,集合A才是集合B的一个超集
在上述运算中,集合运算的顺序是很重要的,即运算时不可交换的
代码如下:

>>>sSet=set([1,2,3])
>>>bSet=set([1,2,3,4,5,6])
>>>sSet.issubset(bSet)
True

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入对象,因为无法判断两个可变对象是否相等,也无法保证内部不会有重复元素

4.2集合的常用函数
s.copy(),返回一个新集合,它是集合s的浅拷贝
s.update(t),用t中的元素修改s,即s现在包含s或t的成员
s.intersection_update(t),s中的成员是共同属于s和t的元素
s.symmetric_difference_update(t)s中的成员更新为那些包含在s或t中,但不是s和t共有的元素
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值