Python3-内置类型-集合类型

Python3中的集合类型主要有两种

  set 可变集合

    可添加和删除元素,它是不可哈希的,因此set对象不能用作字典的键或另一个元素的集合

  forzenset 不可变集合

    正好与set相反,其内容创建后不能更改,它是不可改变的集合,是可哈希的

  注:

    1.set集合是一组无序的且不可重复的元素的集合,访问速度较快

    2.set的构造参数需要一个序列对象,这个序列可以是可变类型,但序列中的元素必须是不可变类型(即可哈希的)

    3.集合支持类似其他容器的len(set)、for x in set,但不支持索引、切片或其他类似序列的行为

相关内置函数

  len(set)

    返回集合中元素的个数

set、forzenset 集合对象常用方法

  s.isdisjoint(other_set)

    如果集合s中的元素与集合other_set中的任何一个元素都不同,即两集合不相交(交集为空),则返回True,否则返回False

  s.issubset(other_set)  

  或  s <= other_set

    如果集合s是集合other_set的子集,则返回True,否则返回False

  s < other_set

    如果集合s是集合other_set的真子集,则返回True,否则返回False

  s.supperset(other_set)  

  或  s >= other_set

    如果集合s是集合other_set的超集,则返回True,否则返回False

  s > other_set

    如果集合s是集合other_set的真超集,则返回True,否则返回False

  s.union(other_set...)  

  或  set | other | ...

    返回一个新集合,集合中会保留s集合与其他集合的并集,即所有集合中不重复的全部元素

  s.intersection(other_set...)

  或  set & other & ...

    返回一个新集合,集合中只会保留s集合与其他所有other_set的交集,即所有集合都有的元素

  s.difference_update(other_set...)

  或  set - other - ...

    返回一个新集合,集合中只会保留其他所有other_set的差集合,即别的集合都没有的元素

  s.symmetric_difference_update(other_set)

  或  set ^ other

    返回一个新集合,集合中只会保留仅存在于其中一个集合(不能两个集合都存在)中的元素

  s.copy()

    返回一个浅拷贝s的新集合

仅set集合对象支持的常用方法

  s.add(elem)

    添加元素到elem到集合s

  s.remove(elem)

    删除集合s中的elem元素,找不到引发异常KeyError

  s.discard(elem)

    类似于remove,但找不到不会引发异常

  s.pop()

    从集合中移除并返回任意元素,如果集合为空,则引发异常KeyError

  s.clear()

    删除集合中所有的元素

  s.update(other_set...)

  或  set |= other | ...

    更新集合s,s中会保留s集合与其他集合的并集,即所有集合中不重复的全部元素

  s.intersection_update(other_set...)

  或  set &= other & ...

    更新集合s,s中只会保留s集合与其他所有other_set的交集,即所有集合都有的元素

  s.difference_update(other_set...)

  或  set -= other | ...

    更新集合s,s中只会保留其他所有other_set的差集合,即别的集合都没有的元素

  s.symmetric_difference_update(other_set)

  或  set ^= other

    更新集合s,s中只会保留仅存在于其中一个集合(不能两个集合都存在)中的元素

原文地址:https://www.cnblogs.com/qq1207501666/p/6527747.html