Python的集合

集合是一种无序且元素唯一的容器,集合与字典类似,但是只有键没有值。集合可以有两种创建方式:通过set函数或者是用字面值集与大括号的语法:

set([2,2,2,1,3,3])
{1, 2, 3}

{2,2,2,1,3,3}
{1, 2, 3}

集合支持数学上的集合操作,例如联合,交集,差集,对称差集;例如两个集合的联合就是两个集合中不同元素的并集。可以通过union方法或是| 二元操作符完成:

a = {1,2,3,4,5}
b = {3,4,5,6,7,8}

a.union(b)
{1, 2, 3, 4, 5, 6, 7, 8}

a|b
{1, 2, 3, 4, 5, 6, 7, 8}

当交集包含了两个集合中同时包含的元素。可以使用intersection方法或者&操作符获得交集:

a.intersection(b)
{3, 4, 5}

a&b
{3, 4, 5}

和字典类似,集合的元素必须是不可变的。如果想要包含列表型的元素,必须先转换为元组:

data = [1,2,3,4]
set_data = {tuple(data)}

set_data
{(1, 2, 3, 4)}

还可以使用issubest函数issuperset函数来检查一个集合是否是另一个结合的子集(包含于)或超集(包含),并且仅当两个集合的内容一模一样时,两个集合才相等:

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

{1,2,3}.issubset(a_set)
True

a_set.issuperset([1,2,3])
True

{1,2,3} ==  {3,2,1}
True

所有的逻辑集合运算都有对应操作,允许你用操作的结果替代操作左边的集合内容,一般适用于大型集合:

c = a.copy()
c|=b

c
{1, 2, 3, 4, 5, 6, 7, 8}

d = a.copy()
d &= b

d
{3, 4, 5}

以下是Python集合各个操作函数的描述:
a.add(x):将元素x加入集合a;
a.clear( ):将集合重置为空,清空所有元素;
a.remove(x):从集合a移除某个元素;
a.pop( ):移除任意元素,如果集合是空的抛出keyError;
a.union(b)或者a|b:a和b中的所有不同元素;
a.update(b)或者a|=b:将a的内容设置为a和b的并集;
a.instersection(b)或者a&b:a、b中同时包含的元素;
a.instersection_update(b)或者a&=b:将a的内容设置为a和b的交集;
a.difference(b)或者a-b:在a不在b的元素;
a.difference_update(b)或者a-=b:将a的内容设置为在a不在b的元素;
a.symmetric_difference(b)或者a^b:所有在a或b中,但不是同时在a、b中的元素;
a.symmetric_difference_update(b)或者a^=b:将a的内容设为所有在a或b中,但不是同时在a、b中的元素;
a.issubest(b):如果a包含于b返回True;
a.issuperset(b):如果a包含b返回True;
a.isdisjoint(b):a、b没有交集返回True。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格陵Lan丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值