User:Xyy23330121/Python/集合
Python 中,集合是无序的、由多个不同元素组成的结构。其中 set 是可变的,而 frozenset 是不可变的。因此,frozenset 可以作为字典的键,而 set 不能。
当尝试向集合添加集合中已有的元素,或者在创建集合时使用了重复的元素。则只会保留重复元素中的一个,其余的会被忽略。
集合是可迭代对象,即便它没有明确的顺序。进行迭代时,它会按照一个随机的顺序迭代元素,直至所有元素都进行过迭代为止。
Python 创建集合主要有三种方式:
- 字面格式:
newSet = {'str', 1, False}
- 推导式:
newSet = {c for c in 'Python' if c not in 'py'}
- set函数:对任意可迭代对象
iterable
,用set(iterable)
或frozenset(iterable)
特别的,可以用set()
或frozenset()
创建空字典。
列表、元组等结构也可以作为集合的元素出现。特别的,集合也可以作为集合的元素。
返回集合 s
中元素的数量。
可以用 x in s
或 x not in s
判断元素是否在集合中。比较运算符可以串联。
如果集合 s
含于集合 other
则返回 True
。反之返回 False
。比较运算符可以串联。
同 s <= other
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
如果集合 s
真含于集合 other
则返回 True
。反之返回 False
。比较运算符可以串联。
如果集合 other
含于集合 s
则返回 True
。反之返回 False
。比较运算符可以串联。
同 s >= other
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
如果集合 other
真含于集合 s
则返回 True
。反之返回 False
。比较运算符可以串联。
如果集合 s
和集合 other
交集为空,则返回 True
。反之返回 False
。
返回该表达式中所有集合的交集。返回的集合是 set
还是 frozenset
,取决于 s
的类型。
同 s & other & ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
返回该表达式中所有集合的并集。返回的集合是 set
还是 frozenset
,取决于 s
的类型。
同 s | other | ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
如果集合 s
和其它所有集合 other, ...
的差。即:返回一个新集合,该集合包含在 s
中、但不在 other | ...
中的元素。
返回的集合是 set
还是 frozenset
,取决于 s
的类型。
同 s - other - ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
返回一个集合,该集合中的元素属于 s.union(other)
但不属于 s.difference(other)
返回的集合是 set
还是 frozenset
,取决于 s
的类型。
同 s ^ other
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
返回集合 s
的拷贝。
以下操作中,s
均为 set
对象。而不能是 frozenset
对象
在集合 s
中添加所有属于 other | ...
的元素。
同 s |= other | ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
从集合 s
中移除所有不属于 other & ...
的元素。
同 s &= other & ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
从集合 s
中移除所有属于 other | ...
的元素。
同 s -= other | ...
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
更新 s
,使其等于 s ^ other
同 s ^= other
。但此时 other
可以为任何可用 set
函数或 frozenset
函数转变为集合的类型。
将 elem
添加到集合 s
中。
将 elem
从集合 s
中移除,如果集合中没有 elem
,则报错 KeyError
。
将 elem
从集合 s
中移除。如果集合中没有 elem
,则不做任何操作。
从集合 s
中任意移除一个元素并返回。如果集合为空,则报错 KeyError
。
将集合 s
变为空集。