集合,set(),记住:

1个特点:去重,把列表变成集合,达到自动去重操作,无序

5个关系:测试两个列表的交差并子反向差集

方法:

  • |  add(...) 常用,已存在元素去重不生效
  • |      Add an element to a set.
  • |     This has no effect if the element is already present.
    >>> list1=[3,2,1,1,2,3,4,5]
    >>> set(list1)
    {1, 2, 3, 4, 5}
    >>> list2=[3,4,5,6,7,8]
    >>> set(list1).add(2)
    >>> set(list1).add(6)
    >>> print(set(list1).add(2))
    None
    >>> print(set(list1).add(6))
    None
    >>> set1=set(list1)
    >>> set2=set(list2)
    >>> set1,set2
    ({1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
    >>> set1.add(3)
    >>> print(set1.add(3)
    ... )
    None
    >>> print(set1.add(7))
    None
    >>> set1.add('aaa')
    >>> set1
    {1, 2, 3, 4, 5, 7, 'aaa'}
    >>> id(set1)
    140138768484616
    >>> set1.add('aaaa')
    >>> id(set1)
    140138768484616
    >>> set1
    {1, 2, 3, 4, 5, 7, 'aaa', 'aaaa'}
    >>> set1.add('')
    >>> set1
    {1, 2, 3, 4, 5, 7, 'aaa', 'aaaa', ''}
    >>> set1.add(7)
    >>> set1
    {1, 2, 3, 4, 5, 7, 'aaa', 'aaaa', ''}
  • 如果是字符串,则拆分成单个字符集合
  • >>> set('abc')
    {'a', 'c', 'b'}
  • |  clear(...) 清空一个集合
  • |      Remove all elements from this set.
    >>> set1.clear()
    >>> set1
    set()
  • |  copy(...) 影子复制,指向同一个内存地址
  • |      Return a shallow copy of a set. |  
    >>> list1
    [3, 2, 1, 1, 2, 3, 4, 5]
    >>> list2
    [3, 4, 5, 6, 7, 8]
    >>> set1=set(list1)
    >>> id(set1)
    140138768485512>>> set3=set1.copy()
    >>> id(set3)
    140138695576712
  • |  difference(...) 差集,格式set1.difference(set2),求in list1 not in list2的集合
  • |      Return the difference of two or more sets as a new set. |
  • |      (i.e. all elements that are in this set but not the others.)   
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set2
    {3, 4, 5, 6, 7, 8}
    >>> set1.difference(set2)
    {1, 2}
  • |  difference_update(...) 删除在本集合同时也在其他集合的元素,差集
  • |      Remove all elements of another set from this set. |
    >>> set1=set(list1)
    >>> set2=set(list2)
    >>> set1,set2
    ({1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
    >>> set1=set(list1)
    >>> set2=set(list2)
    >>> set2.difference_update(set1)
    >>> set2
    {6, 7, 8}
  • |  discard(...) 删除一个在本集合中的元素
  • |      Remove an element from a set if it is a member.
  • |
  • |      If the element is not a member, do nothing. |  
    >>> set3=set([1,2,3,'a','b','c'])
    >>> set3.discard(1)
    >>> set3
    {2, 3, 'c', 'b', 'a'}
    >>> set3.discard('a')
    >>> set3
    {2, 3, 'c', 'b'}
    >>> set3.discard('dd')
    >>> set3
    {2, 3, 'c', 'b'}
  • |  intersection(...)并集,同时在两个集合中的元素
  • |      Return the intersection of two sets as a new set.
  • |
  • |      (i.e. all elements that are in both sets.) |  
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set2
    {3, 4, 5, 6, 7, 8}
    >>> set1.intersection(set2)
    {3, 4, 5}
    >>> set2.intersection(set1)
    {3, 4, 5}
  • |  intersection_update(...) 交集
  • |      Update a set with the intersection of itself and another. |  
    >>> set1,set2
    ({1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
    >>> set1.intersection_update(set2)
    >>> set1
    {3, 4, 5}
  • |  isdisjoint(...) 返回布尔值,判断两个集合是否没有并集
  • |      Return True if two sets have a null intersection.
  • |  
    >>> set1,set2,set3,set4
    ({3, 4, 5}, {3, 4, 5, 6, 7, 8}, {2, 3, 'c', 'b'}, {'y', 'x', 'z'})
    >>> set1.isdisjoint(set2)
    False
    >>> set1.isdisjoint(set4)
    True
  • |  issubset(...) 返回布尔值,判断前一个集合是否是后一个集合的子集
  • |      Report whether another set contains this set. |  
    >>> set1
    {3, 4, 5}
    >>> set5
    {3, 4}
    >>> set5.issubset(set1)
    True
  • |  issuperset(...) 返回布尔值,判断前一个集合是否是后一个集合的父集
  • |      Report whether this set contains another set. |  
    >>> set1
    {3, 4, 5}
    >>> set5
    {3, 4}
    >>> set1.issuperset(set5)
    True
  • |  pop(...) 随机删除一个集合元素,返回被删除元素,空集合删除则报错
  • |      Remove and return an arbitrary set element.
  • |      Raises KeyError if the set is empty. |  
    >>> set1
    {3, 4, 5}
    >>> set1.pop()
    3
    >>> set1
    {4, 5}
    >>> set1.pop()
    4
    >>> set1.pop()
    5
    >>> set1.pop()
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'pop from an empty set'
  • |  remove(...) 删除指定在集合中的元素
  • |      Remove an element from a set; it must be a member. |      
    >>> set1=set(list1)
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set1.remove(1)
    >>> set1
    {2, 3, 4, 5}
    >>> set1.remove('a')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'a'
  • |  symmetric_difference(...) 对称差集,集合A与集合B不相交的部分,交集的反集
  • |     Return the symmetric difference of two sets as a new set.
  • |     (i.e. all elements that are in exactly one of the sets.)     
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set6={4,5,6,7,8}
    >>> set1.symmetric_difference(set6)
    {1, 2, 3, 6, 7, 8}
    >>> set6.symmetric_difference(set1)
    {1, 2, 3, 6, 7, 8}
    >>> set1,set7
    ({1, 2, 3, 4, 5}, {'a', 'c', 'b'})
    >>> set1.symmetric_difference(set7)
    {'c', 2, 3, 1, 4, 5, 'b', 'a'}
  • |  symmetric_difference_update(...)
  • |      Update a set with the symmetric difference of itself and another.
  • |
  • |  union(...) 并集
  • |      Return the union of sets as a new set.
  • |      (i.e. all elements that are in either set.)
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set2
    {3, 4, 5, 6, 7, 8}
    >>> set1.union(set2)
    {1, 2, 3, 4, 5, 6, 7, 8}
  • |  update(...) 用交集更新到set1的集合
  • |      Update a set with the union of itself and others. |  
    >>> set1
    {1, 2, 3, 4, 5}
    >>> set2
    {3, 4, 5, 6, 7, 8}
    >>> set1.update(set2)
    >>> set1
    {1, 2, 3, 4, 5, 6, 7, 8}
    >>>

python3.x 基础三:set集合的更多相关文章

  1. python3.x 基础三:装饰器

    装饰器:本质是函数,用于装饰其他函数,在不改变其他函数的调用和代码的前提下,增加新功能 原则: 1.不能修改被装饰函数的源代码 2.不能修改被装饰函数的调用方式 3.装饰函数对于被装饰函数透明 参考如 ...

  2. python3.x 基础三:函数

    1.OOP 面向对象编程,万物皆对象,以class为主,抽象化 2.POP 面向过程变成,万事皆过程,def定义过程 3.函数式编程,将某种功能封装起来,用的时候直接调用函数名,def定义函数,也叫f ...

  3. python3.x 基础三:字符集问题

    总结了一张表,更详细信息百度百科: 序号 年份 编码 标准协会 特点 二进制长度 字符长度 表现 1 1967 ASCII 美国国家标准学会(American National Standard In ...

  4. python基础三(集合、文件)

    1.集合定义 集合天生能去重,且与字典一样,无序.集合用大括号括起来,里面的元素之间用逗号分隔,要跟字典区分开. 集合定义方法:s=set() #定义一个空集合 s={'1','a','b','c', ...

  5. python3.x 基础三:文件IO

    打开文件的两种方式 1.直接打开文件并赋值给变量,打开后得到操作句柄,但不会自动关闭 file = open('文件名‘,'打开模式',’编码‘) fd = open('../config/file1 ...

  6. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  7. Bootstrap <基础三十一>插件概览

    在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...

  8. C#基础课程之五集合(HashTable,Dictionary)

    HashTable例子: #region HashTable #region Add Hashtable hashTable = new Hashtable(); Hashtable hashTabl ...

  9. Ruby语法基础(三)

    Ruby语法基础(三) ​ 在前面快速入之后,这次加深对基本概念的理解. 字符串 ​ Ruby字符串可以分为单引号字符串和双引号字符串,单引号字符串效率更高,但双引号的支持转义和运行 puts '单引 ...

随机推荐

  1. QT 的 parent 该如何理解

    对话框是GUI程序和用户进行简短交互的顶层窗口,所谓顶层窗口即始终在主窗口之上显示.QDialog是Qt所有类型的对话框窗口的基类,它继承于QWidget,是一种容器类型组件. QWidget是所有窗 ...

  2. Java ASM3学习(3)

    MethodVisitor ClassVisitor的visitMethod能够访问到类中某个方法的一些入口信息,那么针对具体方法中字节码的访问是由MethodVisitor来进行的 访问顺序如下,其 ...

  3. CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

    这一节我们总结FM另外两个远亲NFM,AFM.NFM和AFM都是针对Wide&Deep 中Deep部分的改造.上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM ...

  4. JS代码规范

    JS代码规范 空格 二元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格. var a = !arr.length; a++; a = b + c; 复制代码 用作代码块起始的左花括号 ...

  5. Vue tools开发工具报错Cannot read property '__VUE_DEVTOOLS_UID__' of undefined

    使用 vue tools 开发工具,不显示调试面板中的组件,点击控制台报错: Cannot read property 'VUE_DEVTOOLS_UID' of undefined 在 main.j ...

  6. 老男孩Linux运维50期 --于海科--决心书

    1.我叫于海科,来自于甘肃省天水市,之前就读于兰州石化职业技术学院,我是听之前的学长说老男孩教育出来就业不错,我特此来这培训希望出来能够找到一份不错的工作.2.五个月学完,目标薪资是11k.3.达到目 ...

  7. 2019/2/20训练日记+map/multi map浅谈

    Most crossword puzzle fans are used to anagrams - groups of words with the same letters in different ...

  8. 第十届山东省赛L题Median(floyd传递闭包)+ poj1975 (昨晚的课程总结错了,什么就出度出度,那应该是叫讨论一个元素与其余的关系)

    Median Time Limit: 1 Second Memory Limit: 65536 KB Recall the definition of the median of elements w ...

  9. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十一(四十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  10. POJ2686(状压)

    描述: \(m个城市有p条双向道路.道路的花费是道路的距离/票上的数字.给出n张票,求a->b的最短路\). 开始本来想老套路把城市状态来压缩,但城市最多可以有30个,故考虑把船票压缩. 定义\ ...