集合类型的操作符(共10个)
操作符 |
描述 |
S - T 或 S.difference(T) |
返回一个新集合,包括在集合S中但不在集合T中,S值不变。 |
S -= T 或 S.difference_update(T) |
更新集合S,包括在集合S中但不在集合T中。S值改变。 |
S & T 或 S.intersection(T) |
返回一个集合,包含同时在S和T中的元素 |
S & T 或 S.intersection_update(T) |
更新集合S,包含同时在S和T中的元素 |
S ^ T 或 symmetric_difference(T) |
返回一个新集合,包括集合S和T中的元素,但不包括同时在其中的元素。 |
S ^= T 或 symmetric_difference_update(T) |
更新集合S,包括集合S和T中的元素,但不包括同时在其中的元素。 |
S | T 或 S.union(T) |
返回一个新集合,包含集合S和T中的所有元素。 |
S |= T 或 S.update(T) |
更新集合S,包括集合S和T中的所有元素。 |
S <= T 或 S.issubset(T) |
如果S与T相同或者S是T的子集,返回True,否则返回False,可以用S < T 来判断S是否是T的真子集。 |
S >= T 或 S.issuperset(T) |
如果S与T相同或S是T的超集,返回True,否则返回False,可以用S > T 来判断S是否是T的真超集。 |
集合四种基本操作符:交集(&),并集(|),差集(-),补集(^)
集合类型的10个操作函数或方法(共10个)
操作函数或方法 |
描述 |
S.add(x) |
如果数据项x不在S中,则将x增加到s |
S.claer() |
移除S中的所有数据项 |
S.copy() |
返回集合S的一个副本 |
S.pop() |
随机返回集合S中的一个元素,如果S为空则产生keyError的异常 |
S.discard() |
如果x在集合S中,移除该元素;如果x不在集合S中,不报错。 |
S.remove(x) |
如果x在集合S中,移除该元素;如果x不在集合S中,则产生KeyError异常。 |
S.isdisjoint(T) |
如果集合S和T没有相同元素,则返回True |
Len(S) |
返回S的元素个数 |
x in S |
如果x是in的元素,则返回True,否则,返回False |
x not in S |
如果x不是in的元素,则返回True,否则,返回False |
集合类型主要用于3个场景:成员关系测试,元素去重和删除数据项。
>>> 1 in {1,2,3,4} # 成员关系测试
True
>>> S = (1,1,2,3,4,5,3,)
>>> set(S) # 元素去重
{1, 2, 3, 4, 5}
>>> T = tuple(set(S)-{1,2}) # 去重同时删除数据项`
>>> T
(3, 4, 5)