数据结构之集合

一、构建集合

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

set([1, 2, 2, 3, 3, 3]) # 结果:{1, 2, 3}
{1, 2, 2, 3, 3, 3} # 结果:{1, 2, 3}

二、操作集合

2.1 并集

使用union方法或|二元操作符完成:

a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
a.union(b) # 结果:{1, 2, 3, 4, 5, 6}
a | b # 结果:{1, 2, 3, 4, 5, 6}

也可以求多个集合的并集

a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
c = set([5, 6, 7, 8])
a.union(b, c) # 结果:{1, 2, 3, 4, 5, 6, 7, 8}
a | b | c # 结果:{1, 2, 3, 4, 5, 6, 7, 8} 

2.2 交集

使用&操作符或intersection方法获得交集:

a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
a.intersection(b) # 结果:{3, 4}
a & b # 结果:{3, 4} 

2.3 常用的集合方法

在这里插入图片描述

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

{[1, 2, 3]} # TypeError: unhashable type: 'list'
{tuple([1, 2, 3])} # 结果:{(1, 2, 3)}

可以检查一个集合是否是另一个集合的子集

a = set([1, 2, 3, 4])
b = set([1, 2, 3])
b.issubset(a) # 结果:True

当且仅当两个集合的内容一模一样时,两个集合才相等:

{1, 2, 3} == {3, 2, 1} # 结果:True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值