Python编程:集合——进阶

1.集合论

        集合的本质是许多唯一对象的聚集,因此,集合可以用来去重。集合中的元素必须是可散列的,set类型本身是不可以散列的,但是frozenset是可以的。所以,可以创建包含不同frozenset的set。

l = ['spam', 'eggs', 'spam']
print(set(l))

found = len(set(needles)&set(haystack))

        集合中可以使用的基础运算符(以下的运算符要求两侧的对象必须是集合类型):

运算符方法描述
s&zs._and_(z)s和z的交集
z&ss._rand_(z)反向&操作
s&=zs._iand_(z)把s更新为s和z的交集
s|zs._or_(z)s和z的并集
z|ss._ror_(z)反向|操作
s|=zs._ior_(z)把s更新为s和z的并集
s-zs._sub_(z)s和z的差集
z-ss._rsub_(z)反向-操作
s-=zs._isub_(z)把s更新为s和z的差集
s^zs._xor_(z)

s和z的对称差集

z^ss._rxor_(z)反向^操作
s^=zs._ixor_(z)把s更新为s和z的对称差集

2.集合的字面量

       除空集外,集合的字面量可以用——{1},{1, 2}等来表示,注意空集只能写成set()的形式。所以说,除了空集集合的字符串表示形式总是以{……}形式出现。

s = {1}
print(type(s))

#空集
s = set()

3.集合推导

        集合推导和之前的列表推导类似,下面是一个简单的示例。

from unicodedata import name

a = {chr(i) for i in range(32, 256) if 'SIGN' in name(chr(i), '')}
print(a)

       下面简要介绍一下集合的比较运算符:

运算符方法描述
e in ss._contains_(e)元素e是否属于s
s <= zs._le_(z)s是否是z的子集
s < zs._lt_(z)s是否是z的真子集
s >= zs._ge_(z)s是否是z的父集
s > zs._gt_(z)s是否是z的真父集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值