集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用{ },因为 { } 是用来创建一个空字典,集合是可变的容器序列。

创建非空集合:

集合的添加与删除操作

添加:

  1、add方法:把要传入的元素作为一个整个添加到集合中

  2、update方法:把要传入的元素拆分,作为个体传入到集合中删除

  remove删除集合中要删除的元素

  

集合的查看

  集合也是可迭代对象可以用for循环遍历查看其中的元素

集合的运算

  交集 & 生成两个集合的交集

  并集 | 生成两个集合的并集

  补集 - 生成两个集合的补集

  对称补集 ^ 生成两个集合的对称补集

  子集<   判断一个集合是另一个集合的子集

  超集 > 判断一个集合是另一个集合的·超集

>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket                 # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
 
>>> # 下面展示两个集合间的运算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b                              # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b                              # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

  类似列表推导式,同样集合支持集合推导式(Set comprehension):

>>>a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}

一、添加元素 

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

 

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

   x 可以有多个,用逗号分开

二、移除元素

  

      语法格式如下:

s.remove( x )

             将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

 

    此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )

  

   我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop()

   多次执行测试结果都不一样。

   然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

3、计算集合元素个数

  语法格式如下:

len(s)

4、清空集合

语法格式如下:

s.clear()

5、判断元素是否在集合中存在

语法格式如下:

x in s

判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。

集合内置方法完整列表,详细请移步。

方法

描述

add()

为集合添加元素

clear()

移除集合中的所有元素

copy()

拷贝一个集合

difference()

返回多个集合的差集

difference_update()

移除集合中的元素,该元素在指定的集合也存在。

discard()

删除集合中指定的元素

intersection()

返回集合的交集

intersection_update()

删除集合中的元素,该元素在指定的集合中不存在。

isdisjoint()

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

issubset()

判断指定集合是否为该方法参数集合的子集。

issuperset()

判断该方法的参数集合是否为指定集合的子集

pop()

随机移除元素

remove()

移除指定元素

symmetric_difference()

返回两个集合中不重复的元素集合。

symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

union()

返回两个集合的并集

update()

给集合添加元素