Python中的集合:set与frozenset用法举例

【1】创建:

从list或tuple中创建,我就会这两种。不能从数字直接创建:a=set(1)错误!

1.sa=set(列表)

2.sa=set(tuple)

代码:

 

【2】交集

sc = sa & sb

sc=sa.intersection(sb)

sc=sb.intersection(sa)

三种是等价的

将交集赋值给当前集合:

sa=sa & sb                                --- 不推荐

sa.intersection_update(sb)    --貌似是原位操作,消耗少。推荐

【3】并集

sc=sa|sb

sc=sa.union(sb)

sc=sb.union(sa)

将并集赋值给当前集合: sa.update(sb)

【4】集合之差

属于集合A但不属于集合B

cs=sa-sb

sc=sa.difference(sb)

将集合之差赋值给原集合:

sa=sa-sb

sa.difference_update(sb)

【6】集合之差的并集。

sc= sa ^ sb    相当于 (sa-sb)|(sb-sa)

sc=sa.symmetric_difference(sb)

sc=sb.symmetric_difference(sa)

赋值给原集合:

sa.symmetric_difference_update(sb)

 

【7】

更改元素:

a.add(XXX)

a.pop()   --随机删除

a.remove(XX)   删除XX,XX必须存在,否则出错

a.discard(XX)   删除XX,XX若不存在,则do nothing

a.clear()    --情空

 

【8】

判断

sa.issuperset(sb)      若sa包含sb,返回True             相当于  sa>=sb   (sa>sb 真包含) 

sa.issubset(sb)       若sa包含于sb,返回True           相当于  sa<=sb  

sa.isdisjoint(sb)    若sb&sa==set([]),返回True

【9】frozenset:元素一经创建,不可增加、删除和修改。因此没有add、pop、discard、remove和所有以_update结尾的方法。但可以作为左值接受赋值。

frozenset和set混合运算时,返回的值以左边的操作变量为准。

frozenset(a) | set(b)   的返回值就是frozenset,

set(a) | frozenset(b)  的返回值就是set

 

 

参考资料:

1.官方文档

2.  http://blog.csdn.net/facevoid/article/details/5348735

3.  http://lingo.qulezhi.com/a-python%E4%B8%AD%E8%BF%90%E7%94%A8set%E8%BF%9B%E8%A1%8C%E9%9B%86%E5%90%88%E8%BF

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值