Python基础(五):组合数据类型I

3种主流的组合数据类型

一、集合

定义

  • 与数学的集合概念一致:确定性、互异性、无序性

  • 创建集合:使用 {} 或者 set()

    注意:创建一个空集合使用 set() 而不是 {},因为 {} 用来创建一个空字典。

操作符

  • a | b、交 a & b、差 a - b、补 a ^ b
  • a <= ba < b:判断 a 和 b 的子集关系,返回 Ture/False
  • a >= ba > b:判断 a 和 b 的包含关系,返回 Ture/False
  • 增强操作符:a |= ba &= ba -= ba ^= b

集合操作

集合元素不可更改。

  1. 添加元素

    • s.add(x)

      将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

    • s.update(x)

      添加元素,参数 x 可以是列表,元组,字典等。

      x 可以有多个,用逗号分开。

  2. 移除元素

    • s.remove(x)

      将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误 KeyError

    • s.discard(x)

      移除集合中的元素,且如果元素不存在,不会发生错误。

    • s.pop()

      随机删除集合中的一个元素。

      集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

  3. 清空集合:s.clear()

  4. 得到集合元素个数:len(s)

  5. 判断元素是否在集合中

    • x in s

      判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。

    • x not in s

  6. 其它

    • s.copy():拷贝一个集合。返回拷贝的集合。

应用场景:数据去重

二、序列

定义

  • 先后顺序的一组元素,元素可以重复,元素类型可以不同
  • 通过下标索引访问元素

通用操作符

  • x in sx not in s
  • s+t
  • s*nn*s
  • s[i]s[i:j]s[i:j:k]

通用函数与方法

  • len(s)

  • min(s)max(s)

  • s.index(x)s.index(x,i,j)

  • s.count(x)

    1. min(s)/max(s) 返回序列 s 中的最小/最大元素,要求 s 中的元素可比较

    2. s.index(x,i,j) 返回序列 s 从 i 到 j-1 第一次出现 x 的位置

序列是基类(父类)

Python 有 6 个序列的扩展类型,最常见的是 字符串、列表和元组

  1. 字符串

    • Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
    • 字符串是不可变对象
  2. 元组

    • 元组是不可变对象:一旦创建不可修改

    • 创建元组:使用小括号 ()tuple() 创建,元素间用逗号分隔

      可以不使用小括号:tup3 = "a", "b", "c", "d"

    • 元组操作

      • 元组继承了序列类型的全部通用操作
      • 元组因为创建后不能修改,因此没有特殊操作
  3. 列表

    • 列表是可变对象:元素可以随意修改

    • 创建列表:使用方括号 []list() 创建,元素间用逗号分隔

    • 列表操作

      • 列表继承了序列类型的全部通用操作

      • 更新列表

        • ls[i] = xls[i:j:k]=lt

          1. 替换列表 ls 第 i 元素为 x

          2. 用列表 lt 替换 ls 切片后所对应元素子列表

        • ls.append(x):在列表末尾添加新的对象 x。

        • ls.insert(i,x):将指定对象 x 插入列表的指定位置 i。

      • 删除列表元素

        • del ls[i]del ls[i:j:k]

          1. 删除列表 ls 中第 i 元素

          2. 删除列表 ls 中第 i 到 j-1 以 k 为步长的元素

        • ls.remove(x):移除列表中某个值 x 的第一个匹配项。

        • ls.pop([index=-1])

          1. 移除列表中的一个元素,并且返回该元素的值。

          2. index —— 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。

      • 排序:ls.sort()

      • 其它

        • ls.clear():清空列表,类似于 del ls[:]

        • ls.reverse():反转列表

        • ls.copy():复制列表

          list2 = list1.copy()

序列应用场景

  • 元组用于元素不改变的应用场景,更多用于固定搭配场景
  • 列表更加灵活,它是最常用的序列类型

三、字典

定义

  1. 字典是一种可变容器模型,可存储任意类型对象。

  2. 采用大括号 {} 和内建函数 dict() 创建字典

    使用大括号 {} 创建空字典

  3. 字典的每个键值对用冒号 : 分割,每个对之间用逗号 , 分割

    d = {key1:value1, key2:value2, key3:value3}

  4. 的特性

    值可以取任意数据类型,可以重复。

    • 键必须是唯一的

      创建时如果同一个键被赋值两次,后一个值会被记住。

    • 键必须不可变

      可以用数字,字符串或元组充当,而用列表就不行

字典操作

  1. 访问

    • 就是值的索引,通过键获取值:<值> = <字典变量>[<键>]

      键不在字典中时,会触发 KeyError 异常。

    • d.get(k,<default>)

      键 k 存在,则返回键 k 的值,键不在则返回 <default> 值(默认 default=None)。

  2. 修改

    • 修改值:<字典变量>[<键>] = <新的值>
    • 添加键值对:<字典变量>[<新的键>] = <新的值>
  3. 删除

    • 删除键值对

      • del <字典变量>[<键>]

      • d.pop(k,<default>)

        1. 键 k 存在删除键所对应的值,返回被删除的值,键不在则返回 <default> 值。

        2. 默认值 default 没有指定 ,则触发 KeyError 异常

      • d.popitem()

        1. 在 Python3.7 之前,popitem() 方法删除并返回任意插入字典的键值对。

        2. 在 Python3.7 之后,popitem() 方法删除并返回字典中的最后一对键和值。

    • 删除字典:del <字典变量>

      执行 del 操作删除字典后,字典不再存在

    • 清空字典:<字典变量>.clear()

  4. 其它操作

    • len(d)

    • k in d:判断键 k 是否在字典 d 中,如果在返回 True,否则 False

    • d.keys()d.values()d.items()

      返回字典d中所有的键信息、值信息、键值对信息

应用场景

组合数据类型转换

  • 转换函数:

    • set()
    • tuple()
    • list()

思维导图


Python基础(五):组合数据类型I
https://luminous-ee.github.io/2023/01/25/Python基础(五):组合数据类型I/
作者
落与
发布于
2023年1月25日
许可协议