10.集合及其运算

集合操作

作用:

   (1)去重

   (2)关系测试

 

1.去重功能

>>> a = [1,2,3,2,3,3,4]

>>> a = set(a)

>>> print (a)

{1, 2, 3, 4}

 

2.交集

>>> a = set([1,2,3,4])

>>> b = set([3,4,5,6])

将a和b先设置为集合

 

取交集,使用intersection()方法

print (a.inetrsection(b))

{3, 4}

 

3.并集

   两个列表去除重复的数据在合并

   使用union()方法

>>> print (a.union(b))

{1, 2, 3, 4, 5, 6}

 

4.差集

   difference()

>>> print (a.difference(b))

{1, 2}

a里有但是b里没有

>>> print (b.difference(a))

{5, 6}

b里有的但是a里没有

 

5.子集:issubset()

  父集:issuperset()

>>> a = set([1,2,3])

>>> b = set([1,2,3,4])

>>> print (a.issubset(b))

True

查看a是不是b的子集

>>> print (a.issuperset(b))

False

查看a是不是b的父集

 

6.对称差集(去掉交集的并集)

>>> a = set([1,2,3,4,5])

>>> b = set([3,4,5,6,7])

>>> print (a.symmetric_difference(b))

{1, 2, 6, 7}

 

 

二、求这些集合的方式也可以用符号表示

1、交集: &

2、并集: |

3、差级:  -

4、对称差集: ^

 

例子:

>>> a = set([1,2,3,4])

>>> b = set([3,4,5,6])

1. 交集:

    >>> print (a & b)

   {3, 4}

2、并集:

   >>> print (a | b)

   {1, 2, 3, 4, 5, 6}

3、差级:  -

   >>> print (a - b)

   {1, 2}

   >>> print (b - a)

   {5, 6}

4、对称差集: ^

   >>> print (a ^ b)

   {1, 2, 5, 6}

  

三、集合的增删改查

   集合是不可以插入的。

1.添加:add()

>>> a = set([1,2,3])

>>> print (a)

{1, 2, 3}

>>> a.add(10)

>>> print (a)

{10, 1, 2, 3}

 

2.添加多个

a.update(['a','b','c'])

>>> print (a)

{'b', 1, 2, 3, 'c', 'a'}

 

3.删除一个

>>> a.remove(1)

>>> print (a)

{'b', 2, 3, 'c', 'a'}

>>> a.remove('c')

>>> print (a)

{'b', 2, 3, 'a'}

但是remove删除元素的时候,元素不存在的话就会报错。那么我们可以用discard()

如果元素不存在就会返回none

>>> print(a.discard('aaa'))

None

 

原文地址:https://www.cnblogs.com/pangbing/p/8746602.html