Python——set集合

本文详细介绍了Python中集合的基本操作,包括定义、并集、交集、差集等,并展示了如何利用集合解决实际问题。此外,还讲解了如何使用frozenset在集合中嵌套另一个集合。

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

Python中set集合位于sets模块中,在Python2.3中集合通过setl类型的实现成为了语言的一部分,因而在使用的时候不需要导入sets模块,直接可以使用。通过help(set)指令可以查看到Python中set的各种方法。
一、集合定义和基本操作
1.1 set集合的定义:

>>> a=set([1,2,3])
>>> b=set([4,5,6])

1.2 求两个集合的并集元素:

>>> a.union(b)
{1, 2, 3, 4, 5, 6}
>>> a|b
{1, 2, 3, 4, 5, 6}
>>> 

1.3 向集合中追加元素(不能添加重复的元素):

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

1.4 从集合中移出元素:

>>> x=set([3,4,5,6,1])
>>> x
{1, 3, 4, 5, 6}
>>> x.remove(4)
>>> x
{1, 3, 5, 6}
>>> 

1.5 求集合的交集:

>>> a
{1, 2, 3, 4}
>>> b
{4, 5, 6}
>>> c=a&b
>>> c
{4}
>>> 

1.6 子集判断:

>>> a
{1, 2, 3, 4}
>>> b
{4, 5, 6}
>>> c
{4}
>>> c.issubset(a)
True
>>> c.issubset(b)
True
>>> 

1.7 当前集合是否包含其它集合:

>>> a
{1, 2, 3, 4}
>>> b
{4, 5, 6}
>>> c
{4}
>>> c.issuperset(a)
False
>>> a.issuperset(c)
True
>>> 

1.8 两个集合的交集:

>>> a
{1, 2, 3, 4}
>>> b
{3, 4, 5, 6}
>>> a.intersection(b)
{3, 4}
>>> b.intersection(a)
{3, 4}
>>> 

1.9 集合的差:

>>> a
{1, 2, 3, 4}
>>> b
{3, 4, 5, 6}
>>> a.difference(b)
{1, 2}
>>> b.difference(a)
{5, 6}
>>> 

1.10 返回两个集合的对称差作为一个新的集合:

>>> a
{1, 2, 3, 4}
>>> b
{3, 4, 5, 6}
>>> a.symmetric_difference(b)
{1, 2, 5, 6}
>>> 

或者:

>>> a
{1, 2, 3, 4}
>>> b
{3, 4, 5, 6}
>>> a^b
{1, 2, 5, 6}
>>> 

1.11 复制集合:

>>> a
{1, 2, 3, 4}
>>> c=a.copy()
>>> c
{1, 2, 3, 4}
>>> c is a
False
>>> c == a
True
>>> 

二、集合中包含集合:通常情况下集合中包含的元素都是不可变的值,所以集合中不能含有散列的值,若要在集合中嵌入另一个集合,可以使用frozenset,用于代表不可变的集合。

>>> a
{1, 2, 3, 4}
>>> b
{3, 4, 5, 6}
>>> a.add(b)
Traceback (most recent call last):
  File "<pyshell#120>", line 1, in <module>
    a.add(b)
TypeError: unhashable type: 'set'
>>> a.add(frozenset(b))
>>> a
{frozenset({3, 4, 5, 6}), 1, 2, 3, 4}
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值