会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
莫名丨其妙
菜鸟成长日记
博客园
首页
新随笔
联系
订阅
管理
集合
集合
集合
集合
介绍
创建
操作
set 对象是由具有唯一性的 hashable 对象所组成的
无序多项集
。
用途
成员检测
、从序列中
去除重复项
以及数学中的
集合类计算
,例如交集、并集、差集与
对称差集等等。
不记录元素位置或插入顺序
不支持索引、切片或其他序列类的操作。
两种内置集合类型
set
frozenset
可变的
--- 其内容可以使用 add() 和 remove() 这样的方法来改变。
不可变
--- 其内容在被创建后不能再改变
可hash,可以被用作字典的键或其他集合的元素。
set([iterable])
frozenset([iterable])
1.返回一个新的 set 或 frozenset 对象,其元素来自于 iterable。
2.元素
必须
为 hashable
使用花括号内以逗号分隔元素的方式
{'jack', 'sjoerd'}
使用集合推导式
{c for c in 'abracadabra'}
使用类型构造器
set('foobar')
set(['a', 'b', 'foo'])
set()
len(s)
返回集合 s 中的元素数量(即 s 的基数)
x in s
检测 x 是否为 s 中的成员
isdisjoint(other)
如果集合中没有与 other 共有的元素则返回 True
当且仅当两个集合的交集为空集合时,两者为不相交集合,返回True
等价与
not bool(x & y)
issubset(other)
set <= other
检测是否集合中的每个元素都在 other 之中
检测集合是否为 other 的子集
set < other
检测集合是否为 other 的真子集,即 set <= other and set != other
issuperset(other)
set >= other
检测是否 other 中的每个元素都在集合之中
set > other
检测集合是否为 other 的真超集,即 set >= other and set != other
检测集合是否为 other 的超集
union(*others)
set | other | ...
并集
返回一个新集合,其中包含来自原集合以及 others 的
所有
集合中的
元素
intersection(*others)
set & other & ...
交集
返回一个新集合,其中包含原集合以及 others的所有集合中
共有
的元素
difference(*others)
set - other - ...
差集
返回一个新集合,包含在原集合中存在,但
不存在
与other的所有集合中的元素
symmetric_difference(other)
set ^ other
返回一个新集合,其中的元素或属于原集合或属于 other 指定的其他集合,但不能同
时属于两者。
等同于
(a | b) - (a & b)
copy()
返回原集合的浅拷贝
注意
union() 、 intersection() 、 difference() 、 symmetric_difference() 、 issubset()
和 issuperset() 方法的非运算符版本可以
接受任何可迭代对象
作为一个参数。相比之
下,基于
运算符
的对应方法则
要求参数
为
集合对象
。这就避开了像 set('abc') & 'cbs'
这样容易出错的结构,而换成了可读性更好的 set('abc').intersection('cbs')。
计算
set 的实例与 frozenset 的实例之间基于它们的成员进行比较
例:set('abc') == frozenset('abc') 返回 True
混合了 set 实例与 frozenset 的二进制位运算将返回与第一个操作数相同的类型。例
如: frozenset('ab') | set('bc') 将返回 frozenset 的实例。
可变集合set独有的操作
update(*others)
set |= other | ...
更新集合,添加来自 others 中的所有元素
intersection_update(*others)
set &= other & ...
更新集合,只保留其中在所有 others 中也存在的元素
difference_update(*others)
set -= other | ...
更新集合,移除其中也存在于 others 中的元素
symmetric_difference_update(other)
set ^= other
更新集合,去除所有集合共同存在的元素
add(elem)
将元素 elem 添加到集合中
remove(elem)
从集合中移除元素 elem
如果 elem 不存在于集合中则会引发 KeyError
discard(elem)
如果元素 elem 存在于集合中则将其移除,不存在不报错
pop()
从集合中移除并
返回
任意一个
元素
。 如果集合为空则会引发 KeyError
clear()
清空集合
注意
同计算,非运算符版本的计算方法将接受任意可迭代对象作为参数
上述elem 参数可以是一个
集合
Created With
MindMaster
posted on
2024-11-02 17:31
莫名丨其妙
阅读(
3
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部