• (Python)集合、集合的函数


    本节我们将学习python的另一种数据类型:集合(set)


    1.集合(set)


      集合在Python中是一种没有重复元素,且无序的数据类型,且不能通过索引来引用集合中的元素

    >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
    >>> set(basket)
    set(['orange', 'pear', 'apple', 'banana'])

    set1-set2来获得在set1中的元素在set2中不存在的元素,返回一个新的集合。该功能和set1.difference(set2)的效果一样

    >>> f=set([1,2,3,4,5])
    >>> c=set([3,4,5,6])
    >>> f.difference(c)
    set([1, 2])
    >>> list(f)
    [1, 2, 3, 4, 5]
    >>> f-c
    set([1, 2])

    set1|set2 获得在set1或set2中的元素,返回一个新的集合

    >>> f=set([1,2,3,4,5])
    >>> c=set([3,4,5,6])
    >>> f|c
    set([1, 2, 3, 4, 5, 6])

    set1&set2 获得在set1和set2中均存在的元素,返回一个新的集合

    >>> f=set([1,2,3,4,5])
    >>> c=set([3,4,5,6])
    >>> f&c
    set([3, 4, 5])

    set1^set2 获得在set1或set2中存在,但不包括在set1和set2中都存在的元素,返回一个新的集合

    >>> f=set([1,2,3,4,5])
    >>> c=set([3,4,5,6])
    >>> f^c
    set([1, 2, 6])

    2.集合的函数

    set.add(x) 新增一个元素x,如果集合中已经存在x,则不会新增到集合中

    >>> f=set([3,4,5,6])
    >>> f.add('a')
    >>> f
    set(['a', 3, 4, 5, 6])
    >>> f.add('a')
    >>> f
    set(['a', 3, 4, 5, 6])

    set.clear()清空集合

    >>> f=set([3,4,5,6])
    >>> f.clear()
    >>> f
    set([])

    set.copy()复制一个集合

    >>> f=set([3,4,5,6])
    >>> s=f.copy()
    >>> s
    set([3, 4, 5, 6])

    set1.difference(set2) 获得在set1中的元素在set2中不存在的元素,返回一个新的集合.与set1-set2相同

    >>> f=set([3,4,5,6])
    >>> s=set([1,2,3,4,5])
    >>> s.difference(f)
    set([1, 2])

    set1.difference_update(set2) 更新set1,使set1=set1-set2

    >>> s=set([1,2,3,4,5])
    >>> s.difference_update(f)
    >>> s
    set([1, 2])

    set.discard(x) 删除集合中值为x的元素

    >>> s=set([1,2,3,4,5])
    >>> s.discard(3)
    >>> s
    set([1, 2, 4, 5])

    set1.intersection(set2) 返回set1和set2中均存在的元素,与set1&set2的效果相同

    >>> f=set([3,4,5,6])
    >>> s=set([1,2,3,4,5])
    >>> f.intersection(s)
    set([3, 4, 5])

    set1.intersection_update(set2) 更新set1,使set1等于set1^set2

    >>> f=set([3,4,5,6])
    >>> s=set([1,2,3,4,5])
    >>> f.intersection_update(s)
    >>> f
    set([3, 4, 5])

    set1.isdisjoint(set2) 判断set1与set2是否有相同的元素,如果有,返回false,没有返回true

    >>> f=set([3,4,5,6])
    >>> s=set([1,2,3,4,5])
    >>> q=set([1,0])
    >>> f.isdisjoint(s)
    False
    >>> f.isdisjoint(q)
    True

    set1.issubset(set2)判断set1是否是set2的子集,如果是,返回true,否则返回false

    >>> f=set([1,2])
    >>> q=set([3,4,5,6,7])
    >>> s=set([1,2,3,4,5])
    >>> f.issubset(q)
    False
    >>> f.issubset(s)
    True

    set1.issuperset(set2)判断set1是否包含了set2,即set2是否是set1的子集,如果是,返回true,否则返回false

    >>> f=set([1,2])
    >>> s=set([1,2,3,4,5])
    >>> f.issuperset(s)
    False
    >>> s.issuperset(f)
    True

     set.pop() 删除集合中排序最小的元素,并返回该数

    >>> s=set([3,4,2,1,3])
    >>> s.pop()
    1

    set.remove(x)删除集合中值为x的元素,如果x不存在,则会引发一个错误

    >>> s=set([3,4,2,1,3])
    >>> s.remove(3)
    >>> s
    set([1, 2, 4])
    >>> s.remove(10)
    
    Traceback (most recent call last):
      File "<pyshell#347>", line 1, in <module>
        s.remove(10)
    KeyError: 10

     set1.symmetric_difference(set2),取set1和set2中不同时存在的元素,组成一个新的集合,并返回,同set1^set2相同

    >>> s=set([1,2,4])
    >>> f=set([2,4,5,6])
    >>> f.symmetric_difference(s)
    set([1, 5, 6])

    set1.symmetric_difference_update(set2),更新set1,使set1=set1^set2

    >>> s=set([1,2,4])
    >>> f=set([2,4,5,6])
    >>> f.symmetric_difference_update(s)
    >>> f
    set([1, 5, 6])

    set1.union(set2) 取set1与set2的元素,组成一个新的集合,并返回,同:set1|set2

    >>> s=set([1,2,4])
    >>> f=set([2,4,5,6])
    >>> s.union(f)
    set([1, 2, 4, 5, 6])

    set1.update(set2) 更新set1,使set1=set1|set2

    >>> s=set([1,2,4])
    >>> f=set([2,4,5,6])
    >>> s.update(f)
    >>> s
    set([1, 2, 4, 5, 6])

  • 相关阅读:
    IL汇编语言介绍(译)
    开源搜索框架Lucene学习系列
    【转】autoHeight为true的时候,autoScroll为true就不起作用了
    [转]反注册 Regsvr32命令应用大全
    [转]sun.misc.BASE64Encoder找不到的解决方法
    mysql数据库导入导出
    【转】MySQL 与MS SQL Server数据库使用多表关联Update时语法的区别
    CRT detected that the application wrote to memory after end of heap buffer
    魔兽争霸窗口化
    GROUP_CONCAT函数
  • 原文地址:https://www.cnblogs.com/Lival/p/4398641.html
Copyright © 2020-2023  润新知