集合
集合
集合 介绍 创建 操作 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 参数可以是一个 集合
posted on 2024-11-02 17:31  莫名丨其妙  阅读(3)  评论(0编辑  收藏  举报