集合

集合
  在Python入门中介绍了集合基础。这一节介绍集合的进阶应用。
  每个集合实际上都是类set的实例。通过type()可以验证这一点:
>>> type({'a', 'b', 'c'}) # 输出显示{'a', 'b', 'c'}是类set的实例
  类set拥有很多有用的方法,使用这些方法可以极大地提高编程的效率。

add(x)
  向集合添加一个元素x。如果此元素已经存在集合中,那么集合不变。

update()
  向集合添加多个元素。

clear()
    删除集合中的所有元素。

pop()
  返回集合中的一个元素,并将此元素从集合中删除。如果集合为空,则抛出异常KeyError。

remove(x)
  删除集合中的元素x。如何集合中不存在元素x,则抛出异常KeyError。

discard(x)
  删除集合中的元素x。与remove()的不同点在于:如何集合中不存在元素x,不会抛出异常,而是正常返回。

copy()
    返回一个集合的浅拷贝 。

difference()
    返回两个或者两个以上集合的差集。t.difference(s):返回一个新集合,集合中的元素在t中,但是不在s中。

difference_update()
  对原集合进行修改,删除在两个集合中都存在的元素。不会返回一个新集合。


intersection()
  返回同时在两个集合中的元素组成的集合,即交集。

intersection_update()
  对原集合进行修改,修改后的集合为两个原集合的交集。不会返回一个新集合。

isdisjoint()
  判断两个集合是否是不相交的。

issubset()
  判断一个集合是否是另一个集合的子集。

issuperset()
  判断一个集合是否是另一个集合的超集。


symmetric_difference()
  返回两个集合的对称差集。t.difference_update(s):返回一个新集合,集合中的元素在t或者s中,但不同时在t和s中。

symmetric_difference_update()
  对原集合进行修改,修改后的集合为两个原集合的对称差集。不会返回一个新集合。

union()
  返回两个集合的并集。

集合运算符
  除了直接使用方法调用相关的功能,还可以通过对应的运算符来进行操作:
操作名函数名运算符备注
并集union()|r = t | s
交集intersection()&r = t & s
差集difference()-r = t - s
对称差集symmetric_difference()^r = r = t ^ s
是否子集issubset()<=t<=s
是否超集issuperset()>=t>=s


集合的长度
  集合中元素的个数称为集合的长度。集合的长度可以使用Python的内置函数len()来获取。例如:len({1, 2, 3})。

判断元素是否属于集合
  可以通过关键字in来判断某个元素是否属于某个集合。例如:x in {1, 2, 3},如果属于,表达式值为True;否则,表达式值为False。