Python3 集合

python.png

–本篇主要讲述 Python数据类型之:集合–

“优雅” “明确” “简单”
Python

Python中的数据类型:集合(set)。
在Python中,集合数据类型英文称作:“ set ”。
集合是各种数据的一个集合,在Python中的定义则是:

  1. 使用集合类 set() 来创建,set 接收一个可迭代对象作为参数;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> s = set(("a",1,2,"b"))
    >>> s
    {1, 'a', 2, 'b'}
    >>> type(s)
    <class 'set'>
    >>> s = set("abc")
    >>> s
    {'a', 'b', 'c'}
    >>> type(s)
    <class 'set'>
  2. 使用花括号 { } 来创建;

    1
    2
    3
    4
    5
    >>> s={1,2,3,4}
    >>> s
    {1, 2, 3, 4}
    >>> type(s)
    <class 'set'>

值得注意的是:
如果是创建一个空的集合,那么将只能够使用 set() 进行创建!
如果是创建一个空的集合,那么将只能够使用 set() 进行创建!
如果是创建一个空的集合,那么将只能够使用 set() 进行创建!
为什么?因为单独使用花括号 { }构建时,我们构建的是空的字典表!
让我们看一看验证结果:

1
2
3
4
5
6
>>> d = {}
>>> type(d)
<class 'dict'>
>>> s = set()
>>> type(s)
<class 'set'>

相关的方法等示例展示,均以Python的交互式环境演示为主!


集合数据类型的特性

  1. 集合是一个无序的,不重复的数据组合;
  2. 可进行关系测试,测试两组数据之前的交集、差集、并集等关系;
  3. 由于无序,因此集合不支持索引、切片等操作;

关系运算

  1. + 加法操作在集合类型中是不被支持的!

  2. - 两集合的差集(减数集合中有,但是在被减数集合中没有的数据)

    1
    2
    3
    4
    >>> s = {1,2,3}
    >>> q = {2,3,4}
    >>> s - q
    {1}
  3. | 两集合之间的并集(其结果自然也是去重后的结果)

    1
    2
    3
    4
    5
    6
    7
    8
    >>> s = {1,2,3}
    >>> q = {4,5,6}
    >>> s | q
    {1, 2, 3, 4, 5, 6}
    >>> s = {1,2,3}
    >>> q = {2,3,4}
    >>> s | q
    {1, 2, 3, 4}
  4. & 两集合之间的交集

    1
    2
    3
    4
    5
    6
    7
    8
    >>> s = {1,2,3}
    >>> q = {4,5,6}
    >>> s & q
    set()
    >>> s = {1,2,3}
    >>> q = {2,3,4}
    >>> s & q
    {2, 3}
  5. ^ 两集合的对称差集(结果数据在两集合中不同时存在)

    1
    2
    3
    4
    5
    6
    7
    8
    >>> s = {1,2,3}
    >>> q = {4,5,6}
    >>> s ^ q
    {1, 2, 3, 4, 5, 6}
    >>> s = {1,2,3}
    >>> q = {2,3,4}
    >>> s ^ q
    {1, 4}
  6. in 成员运算符 - 判断指定元素是否存在于集合内,存在则为 True, 反之为 False

    1
    2
    3
    4
    5
    >>> s = {1,2,3}
    >>> 1 in s
    True
    >>> 4 in s
    False
  7. not in 成员运算符 - 判断指定元素是否存在于集合内,不存在则为 True, 反之为 False

    1
    2
    3
    4
    5
    >>> s = {1,2,3}
    >>> 1 not in s
    False
    >>> 4 not in s
    True

集合数据类型的常见内建函数

  1. add( ) 向集合内添加单个元素,如果存在则不起作用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> s.add(4)
    >>> s
    {1, 2, 3, 4}
    >>> s.add((5,6))
    >>> s
    {1, 2, 3, 4, (5, 6)}
    >>> s.add("abc")
    >>> s
    {1, 2, 3, 4, (5, 6), 'abc'}
  2. clear( ) 清空集合

    1
    2
    3
    4
    5
    6
    >>> s = {1, 2, 3}
    >>> s
    {1, 2, 3}
    >>> s.clear()
    >>> s
    set()
  3. copy( ) 创建集合的副本

    1
    2
    3
    4
    >>> s = {1, 2, 3}
    >>> q = s.copy()
    >>> q
    {1, 2, 3}
  4. difference( ) 差集(当前集合有而其他集合没有的差集)

    1
    2
    3
    4
    5
    6
    >>> s = {1, 2, 3}
    >>> q = {2, 3}
    >>> s.difference(q)
    {1}
    >>> q.difference(s)
    set()
  5. difference_update( ) 从当前集合内删除所有与其他集合内相同的数据元素

    1
    2
    3
    4
    5
    6
    7
    >>> s = {1, 2, 3}
    >>> q = {2, 3}
    >>> s
    {1, 2, 3}
    >>> s.difference_update(q)
    >>> s
    {1}
  6. intersection( ) 交集

    1
    2
    3
    4
    5
    >>> s = {1, 2, 3}
    >>> q = {2, 3}
    >>> r = s.intersection(q)
    >>> r
    {2, 3}
  7. union( ) 并集

    1
    2
    3
    4
    5
    >>> s = {1, 2, 3}
    >>> q = {2, 3, 4}
    >>> r = s.union(q)
    >>> r
    {1, 2, 3, 4}
  8. remove( ) 删除集合内的某个指定元素

    1
    2
    3
    4
    >>> s = {1, 2, 3}
    >>> s.remove(1)
    >>> s
    {2, 3}
  9. update( ) 集合内添加多个元素(注意观察与 add() 的区别)

    1
    2
    3
    4
    >>> s = {1, 2, 3}
    >>> s.update((4,5,6))
    >>> s
    {1, 2, 3, 4, 5, 6}

更多关于集合数据类型的内建函数方法,可在 Python 交互式环境下,使用:help(set) 进行查看,或查阅官方文档:Python 官方文档

0%