python3 集合

发布时间:2019-09-27 07:13:18编辑:auto阅读(1945)

    集合:
        数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称做集合元素。
        集合对象是一组无序排列的可哈希的值。
        集合有两种类型:
            1、可变集合set
            2、不可变集合frozenset
    
    特点:
        1、值不可以重复
    
        创建可变集合set
        >>> s1 = set('hello')
        >>> s1
        {'h', 'l', 'o', 'e'}  #值不可以重复,所以两个L合并成一个L
    
        创建不可变集合frozenset
        >>> s2 = frozenset('hello')
        >>> s2
        frozenset({'h', 'l', 'o', 'e'})
    
        创建整体集合:
        >>> s3 = set(['hello', 'world'])
        >>> s3
        {'hello', 'world'}
    
    集合类型操作符:
        集合支持用in和not in操作符检查chengy
        能够通过len()检查集合大小 
        能够使用for迭代集合成员
        不能取切边,没有键
        >>> s3 = set(['hello', 'world'])
        >>> s3
        {'hello', 'world'}
        >>> len(s3)
        2
    
        >>> for i in s3:     #迭代集合成员
        ...     print(i)
        ... 
        hello
        world
    
    | :联合,取并集  #两个集合合并成一个,相同集合元素合并,可以用函数union表示
        >>> a | b
        {'e', 'b', 'c', 'a', 'd'}
    
        >>> a.union(b)
        {'e', 'b', 'c', 'a', 'd'}
    
    & :交集       #两个集合中都有的元素‘C’,可以用函数intersection表示
        >>> a = set('abc')
        >>> b = set('cde')
        >>> a
        {'b', 'c', 'a'}
        >>> b
        {'e', 'c', 'd'}
        >>> a & b
        {'c'}
    
        >>> a.intersection(b)
        {'c'}
    
    - :差补   #取差异,    可使用函数difference表示。
        >>> a - b    #b集合中没有a集合当中的那些元素,
        {'b', 'a'}
    
        >>> b - a    #a集合中没有b集合当中的参数是那些
        {'e', 'd'}
    
        >>> a.difference(b)
        {'b', 'a'}
    
    集合内建方法:
        添加成员:
        set.add()   #当成一个整体进行添加
            >>> a.add('new')
            >>> a
            {'b', 'new', 'c', 'a'}
    
        批量添加成员:
        set.update() #拆分进行添加,添加多个可以使用s3的方式
    
            >>> a.update('new')
            >>> a
            {'w', 'e', 'b', 'n', 'new', 'c', 'a'}
    
                >>> s3 = set(['hello', 'world'])
                >>> s3
                {'hello', 'world'}
    
        删除成员:
        set.remove() #由于集合是无序的,无法取下标和key,只能指定删除项
            >>> a.remove('n')
            >>> a
            {'w', 'e', 'b', 'new', 'c', 'a'}
    
        子集、超集:
            a集合中包含b集合的元素,所以a集合是b集合的超集,b集合是a集合的子集
            被包含的是子集,包含别人的是超集
            >>> a = set('abcde')
            >> b = set('bcd')
            >>> a
            {'e', 'b', 'c', 'a', 'd'}
            >>> b
            {'b', 'c', 'd'}
    
        X.issuperset(XX)    #判断a集合是否为b集合的超集
        >>> a.issuperset(b)
        True
    
        >>> b.issubset(a)   #判断b集合是否为a集合的子集
        True
    
        集合本身是自己的超集和子集

关键字