您的位置:首页 > 编程语言 > Python开发

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

2013-01-07 22:02 363 查看
【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. /article/9534722.html

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%90%E7%AE%97.html/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: