python3 集合

2020-01-06 09:49:34 浏览数 (1)

代码语言:javascript复制
集合:
    数学上,把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

    集合本身是自己的超集和子集

0 人点赞