• 2-10 集合


    1.如何找出同时买了iPhone7和iPhone8的人

       

      

    2.集合

    集合中的元素有三个特征:
    
    1.确定性(元素必须可hash)
    2.互异性(去重)
    3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。
    • 注意:集合存在的意义就在于去重和关系运算

       

    3.集合方法

    # 查看所有方法
    >>> dir(s)
    ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getatt
    ribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len_
    _', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__'
    , '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', '
    difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset
    ', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
    >>>
    
    # 方法的帮助
    >>> help(s.clear)
    
    Help on built-in function clear:
    
    clear(...) method of builtins.set instance
        Remove all elements from this set.

      (1)创建

       

      (2)添加

    • 单个元素的增加 : add(),add的作用类似列表中的append
    • 对序列的增加 : update(),而update类似extend方法,update方法可以支持同时传入多个参数:

       

       

      (3)删除

        

      

    4.集合测试

    >>> iphone7
    {'rain', 'jack', 'alex', 'tom'}
    >>> iphone8
    {'shanshan', 'jack', 'alex', 'tom'}
    
    # 交集
    >>> iphone7.intersection(iphone8)
    {'jack', 'alex', 'tom'}
    >>> iphone7 & iphone8
    {'jack', 'alex', 'tom'}
    >>>
    
    #差集
    >>> iphone7.difference(iphone8)
    {'rain'}
    >>> iphone7 - iphone8
    {'rain'}
    >>>
    >>> iphone8.difference(iphone7)
    {'shanshan'}
    >>> iphone8 - iphone7
    {'shanshan'}
    
    #并集
    >>> iphone7.union(iphone8)
    {'rain', 'tom', 'shanshan', 'jack', 'alex'}
    >>> iphone7 | iphone8
    {'rain', 'tom', 'shanshan', 'jack', 'alex'}
    >>>
    
    # 对称差集
    # 只买了iphone7 或者iphone8 的人
    >>> iphone7.symmetric_difference(iphone8)
    {'shanshan', 'rain'}
    >>> iphone7 ^ iphone8
    {'shanshan', 'rain'}
    def difference_update(self, *args, **kwargs): # real signature unknown
            """ Remove all elements of another set from this set. """
            pass   
    
    def intersection_update(self, *args, **kwargs): # real signature unknown
            """ Update a set with the intersection of itself and another. """
            pass

    5.包含关系

    in,not in:判断某元素是否在集合内
    ==,!=:判断两个集合是否相等

    两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:

      • set.isdisjoint(s):判断两个集合是不是不相交
      • set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
      • set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b

     

  • 相关阅读:
    数据库从sql 2000迁移到SQL 2005遇到的问题
    转:好用的抓取dump的工具ProcDump
    普通程序员回顾2010
    jQuery 结合 Json 提交数据到Webservice,并接收从Webservice返回的Json数据
    matplotlib 设置图形大小时 figsize 与 dpi 的关系
    Pandas 常见用法个人随笔
    python f.readlines() 会耗完所有内存
    推荐系统学习材料
    查看更多折叠动画(中间内容高度不确定)
    Entity Framework CodeFirst For Oracle
  • 原文地址:https://www.cnblogs.com/venicid/p/8361979.html
Copyright © 2020-2023  润新知