python之浅谈set集合

一、什么是集合

集合(set)是一个无序且不能有重复元素的容器。其功能是:

  去重:把一个可迭代对象变成集合后,就可以自动去重

  数据测试:可以测试两组数据之间的交集、并集、差集、反向交集、超集、子集等

二、集合的定义

集合只有一种定义方法,即使用工厂函数set,并返回一个set的对象。格式如下:

  s = set()      #创建并返回一个空集合

  s = set(iterable)   #创建一个新集合

    s1 = set("abc")  ----->  输出 {'a', 'b', 'c'}

    s2 = set(["aa", "bb", "cc"])  ----> 输出 {"aa", "bb", "cc"}

三、集合的常用方法

增加:s.add(element)      #把对象element添加到集合当中,如果集合中已经存在该元素,则该集合不会有变化

    s1.add("d")  ----->  {'a', 'b', 'c', 'd'}

    s.update(iterator)     #更新集合

    s1.update("def")  ----->  {'a', 'b', 'c', 'd', e', 'f'}  #因为集合中元素不能有重复的,所以只有一个d

删除:s.pop()         #随机删除集合中的一个元素

  s1.pop()   ------>  随机删除集合s1中的一个元素

 s.remove(element)    #删除集合中指定的元素,如果不存在,则会出错

  s1.remove('a')  ----->删除集合s1中的元素a

 s.discard(element)    #删除集合中指定的元素,如果集合中不存在该元素,则什么也不会做

  s1.discard("c")  ------>  删除集体s1中的“c"

 s.clear()        #清空集合

四、集合的数据测试常用方法

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

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

  c = set([2, 3, 5])

  1、取交集 intersection,对应的符号:&

    a.intersection(b)      ------>  {4, 5}

  2、并集  union,对应的符号:|

    a.union(b)          ------>  {1, 2, 3, 4, 5, 6, 7, 8}

  3、差集  difference,对应的符号为:-

    a.difference(b)      ------>  {1, 2, 3}

    b.difference(a)      ------>  {8, 7, 6}

  4、反向交集 symmetric_difference,对应的符号:^

    a.symmetric_difference(b)  ------>  {1, 2, 3, 6, 7, 8}

  5、超集  issupseter

    a.issupseter(b)        ------>  False

    a.issupseter(c)        ----->  True

  6、子集  issubset

    c.issubset(a)        ------->   True

posted @ 2018-03-09 10:07  孤少  阅读(117)  评论(0编辑  收藏  举报