• 技术文章 >Python技术 >Python基础教程

    Python之set集合的相关介绍

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-07-02 16:00:35原创2618

    认识python中的set集合及其用法

    python中,集合(set)是一个无序排列,可哈希,支持集合关系测试,不支持索引和切片操作,没有特定语法格式,只能通过工厂函数创建.集合里不会出现两个相同的元素,所以集合常用来对字符串或元组或列表中的元素进行去重操作。

    生成一个集合可以使用如下语法:

    生成集合语法1:

    1

    2

    3

    4

    >>> l1=[1,2,3,4,5,6]

    >>> s1=set(l1)

    >>> print(s1)

    {1, 2, 3, 4, 5, 6}

    在这里,使用工厂函数set创建集合,set的参数可以是一个列表,也可以是一个元组或字符串。

    生成集合语法2:

    1

    2

    3

    >>> s2={6,7,8,9,10}

    >>> print(s2)

    {8, 9, 10, 6, 7}

    生成集合语法3:

    1

    2

    3

    >>> s3={i for i in range(10)}

    >>> print(s3)

    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

    集合类型的方法和操作:

    add

    1

    2

    3

    为集合增加一个元素,如果集合中本来已经存在这个元素对集合无影响

    Add an element to a set.

    This has no effect if the element is already present.

    1

    2

    3

    4

    5

    6

    7

    >>> s1={1,2,3,4,5,6,7}

    >>> s1.add(8)

    >>> print(s1)

    {1, 2, 3, 4, 5, 6, 7, 8}

    >>> s1.add(9)

    >>> print(s1)

    {1, 2, 3, 4, 5, 6, 7, 8, 9}

    clear

    1

    2

    清空集合里所有的元素

    Remove all elements from this set.

    1

    2

    3

    4

    5

    6

    7

    8

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9}

    >>> s1.clear()

    >>> print(s1)

    set()

    >>> s2.clear()

    >>> print(s2)

    set()

    copy

    1

    2

    对集合进行浅拷贝(只复制元素,不复制内存地址)

    Return a shallow copy of a set.

    1

    2

    3

    4

    5

    6

    >>> s1={1,2,3,4,5,6,7}

    >>> print(s1,id(s1))

    {1, 2, 3, 4, 5, 6, 7} 140509859430472

    >>> s2=s1.copy()

    >>> print(s2,id(s2))

    {1, 2, 3, 4, 5, 6, 7} 140509842716712

    difference

    1

    2

    求两个或多个集合的差集,并返回一个新集合

    Return the difference of two or more sets as a new set.

    1

    2

    3

    4

    5

    6

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s1.difference(s2)

    {1, 2, 3, 4}

    >>> s2.difference(s1)

    {8, 9, 10}

    difference_update

    1

    2

    把两个集合的交集部分从集合中移除

    Remove all elements of another set from this set.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s1.difference_update(s2)

    >>> print(s1)

    {1, 2, 3, 4}

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s2.difference_update(s1)

    >>> print(s2)

    {8, 9, 10}

    相关推荐:《Python视频教程

    discard

    1

    2

    3

    从集合中移除一个元素,如果被移除的元素不在集合中,不会报错

    Remove an element from a set if it is a member.

    If the element is not a member, do nothing.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    {1, 2, 3, 4, 5, 6, 7}

    >>> s1.discard(7)

    >>> print(s1)

    {1, 2, 3, 4, 5, 6}

    >>> s1.discard(4)

    >>> print(s1)

    {1, 2, 3, 5, 6}

    >>> print(s1)

    {1, 2, 3, 5, 6}

    intersection

    1

    2

    求两个或多个集合中的交集

    Return the intersection of two sets as a new set.

    1

    2

    3

    4

    5

    6

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s1.intersection(s2)

    {5, 6, 7}

    >>> s2.intersection(s1)

    {5, 6, 7}

    intersection_update

    1

    2

    把两个集合的交集做为新的集合

    Update a set with the intersection of itself and another.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s1.intersection_update(s2)

    >>> print(s1)

    {5, 6, 7}

    >>> print(s2)

    {5, 6, 7, 8, 9, 10}

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s2.intersection_update(s1)

    >>> print(s2)

    {5, 6, 7}

    >>> print(s1)

    {1, 2, 3, 4, 5, 6, 7}

    isdisjoint

    1

    2

    两个集合没有交集则返回True

    Return True if two sets have a null intersection.

    1

    2

    3

    4

    5

    6

    7

    8

    >>> s1={1,2,3,4,5,6,7}

    >>> s2={5,6,7,8,9,10}

    >>> s1.isdisjoint(s2)

    False

    >>> s1={1,2,3,4}

    >>> s2={6,7,8,9}

    >>> s1.isdisjoint(s2)

    True

    issubset

    1

    2

    如果本集合是参数集合的子集,返回True

    Report whether another set contains this set.

    1

    2

    3

    4

    5

    6

    >>> s1={1,2,3,4}

    >>> s2={1,2,3,4,5,6,7}

    >>> s1.issubset(s2)

    True

    >>> s2.issubset(s1)

    False

    issuperset

    1

    2

    如果本集合是参数集合的超集,返回True

    Report whether this set contains another set.

    1

    2

    3

    4

    5

    6

    >>> s1={1,2,3,4}

    >>> s2={1,2,3,4,5,6,7}

    >>> s1.issuperset(s2)

    False

    >>> s2.issuperset(s1)

    True

    pop

    1

    2

    3

    从集合中移除一个元素,如果集合为空,则报错

    Remove and return an arbitrary set element.

    Raises KeyError if the set is empty.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    >>> s1={2,3,4,5}

    >>> s1.pop()

    2

    >>> print(s1)

    {3, 4, 5}

    >>> s1.pop()

    3

    >>> s1.pop()

    4

    >>> s1.pop()

    5

    >>> s1.pop()

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    KeyError: 'pop from an empty set'

    remove

    1

    2

    3

    移除集合中的一个元素,如果集合是空的,则报错

    Remove an element from a set; it must be a member. 

    If the element is not a member, raise a KeyError.

    1

    2

    3

    4

    5

    6

    7

    8

    >>> s1={1,2,3,4,5,6}

    >>> s1.remove(4)

    >>> print(s1)

    {1, 2, 3, 5, 6}

    >>> s1.remove(9)

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    KeyError: 9

    symmetric_difference

    1

    2

    返回两个集合的对称差集的集合

    Return the symmetric difference of two sets as a new set.

    1

    2

    3

    4

    5

    6

    7

    8

    >>> s1={1,2,3,4}

    >>> s2={6,7,8,9}

    >>> s1.symmetric_difference(s2)

    {1, 2, 3, 4, 6, 7, 8, 9}

    >>> s3={1,2,3,4,5,6}

    >>> s4={5,6,7,8,9,10}

    >>> s3.symmetric_difference(s4)

    {1, 2, 3, 4, 7, 8, 9, 10}

    symmetric_difference_update

    1

    2

    与参数集合做对称差集,并返回给自身

    Update a set with the symmetric difference of itself and another.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    >>> s1={1,2,3,4}

    >>> s2={6,7,8,9}

    >>> s2.symmetric_difference_update(s1)

    >>> print(s2)

    {1, 2, 3, 4, 6, 7, 8, 9}

    >>> s3={1,2,3,4,5,6}

    >>> s4={5,6,7,8,9,10}

    >>> s3.symmetric_difference_update(s4)

    >>> print(s3)

    {1, 2, 3, 4, 7, 8, 9, 10}

    union

    1

    2

    求两个或多个集合的并集

    Return the union of sets as a new set.

    1

    2

    3

    4

    5

    6

    7

    8

    >>> s1={1,2,3,4,5,6}

    >>> s2={5,6,7,8,9}

    >>> s1.union(s2)

    {1, 2, 3, 4, 5, 6, 7, 8, 9}

    >>> s3={1,2,3,4}

    >>> s4={6,7,8,9}

    >>> s3.union(s4)

    {1, 2, 3, 4, 6, 7, 8, 9}

    update

    1

    2

    与另一个集合求并集,并返回给自身

    Update a set with the union of itself and others.

    1

    2

    3

    4

    5

    >>> s3={1,2,3,4}

    >>> s4={6,7,8,9}

    >>> s3.update(s4)

    >>> print(s3)

    {1, 2, 3, 4, 6, 7, 8, 9}

    专题推荐:python set
    上一篇:Python3 File(文件) 方法 下一篇:Python模块导入的相关介绍

    相关文章推荐

    • Python整数常用的方法汇总

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网