Skip to content

Latest commit

 

History

History
245 lines (165 loc) · 5.61 KB

100-764051-元组_tuple_定义_统计方法_表驱动.sy.md

File metadata and controls

245 lines (165 loc) · 5.61 KB
show version enable_checker
step
1.0
true

列表 - 嵌套 embedded

回忆

  • 上次了解到列表也可以进行运算
    • 加法运算
      • 会产生新的列表空间
      • 但是高维的列表引用还是被直接复制
      • 可以用深拷贝deepcopy制作全新高维列表
    • 乘法运算
      • 乘法的本质是累加
      • 默认的结果使用的是原来的列表引用
    • 缝合操作
      • 把两个列表里同样位置的元素
      • 缝合在一起

图片描述

  • 缝合里面出现的小括号应该怎么理解呢?🤔

游乐场

图片描述

  • 小括号这个变量类型为tuple
  • 什么是tuple呢?

图片描述

  • 词源来自于五倍体
  • 后来被翻译为元组
  • 究竟什么是python中的元组呢?

帮助手册

图片描述

  • 元组是
    • 内建的 builtin
    • 不可变的 immutable
    • 序列 sequence
  • 对比列表

图片描述

  • 列表是是

    • 内建的 builtin
    • 可变的 mutable
    • 序列 sequence
  • 列表和元组都是内建的序列

  • 关键就是mu不mutable

  • 什么是mutable呢?

mute

  • 给音轨静音🔇叫做mute

图片描述

  • 可以mute的音轨是可变的

    • mutable
  • 不可以变的音轨

    • 是immutable
  • im代表否定

    • impossible
    • immoral
    • immotal
  • 总之

    • immutable就是不能变

对于不可变的理解

  • 元组是immutable的

图片描述

  • 这t是一个元组
    • 他不是就变了吗?
  • 元组不可变
    • 指的是他的元组序列是固定的
    • 不能变的
  • 再去看看

元组项

  • 相对来说
  • 列表里面的列表项
    • 是可以修改的
    • 是mutable的

图片描述

  • 元组里面的元组项
    • 是不能修改的
    • 是immutable的

图片描述

  • 我们再去看看tuple的构造方法

缺省构造方法

图片描述

  • 如果没有参数返回一个空元组

图片描述

  • 再初始化一个空元组
    • 引用同一个地址

构造方法

图片描述

  • 如果元组构造方法的参数是可迭代的变量
  • 那么就用可迭代变量的项目做元组项

图片描述

  • 元组也是可迭代类型
  • 可以用元组作为元组构造方法的参数吗?

元组作为参数

图片描述

图片描述

  • 如果参数是元组
    • 那么返回同一个对象(引用地址)
  • 如果是又建立一个一模一样的元组呢?

新建元组

图片描述

  • 新建元组不会使用相同对象(引用地址)

图片描述

  • 除非是空元组
  • 元组对象有没有
    • append
    • extend
    • remove
    • sort
    • 这类的方法呢?

再看文档

  • 元组的方法相对列表
    • 非常简单

图片描述

  • 没有任何修改类的方法
  • 只有两个统计类的方法
    • count
    • index
  • 我们来试试

计数函数

图片描述

  • 计数方法也和列表一样

图片描述

索引函数

图片描述

  • 方法和列表一样
    • 索引方法三个参数
    • 搜索值
    • 开始位置 start
    • 结束位置 stop

图片描述

  • 既然可以用索引方法
  • 可以使用下标索引吗?

索引和切片

图片描述

  • 切片和索引都可以使用
  • 切片的结果还是元组
  • 索引的结果是具体元素

通过年份求属相

zodiac = ('鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪')
year = int(input("please input year:"))
print(zodiac[(year-4)%12])
  • 十二生肖不能变
  • 是比较典型的元组
  • 这个编程方法叫做表驱动
    • 使用索引的方式代替分值控制语句
    • 想要查询细节直接看驱动表
    • 提高了程序的可读性
days = (31,28,31,30,31,30,31,31,30,31,30,31)
print(days[2])
  • 这样每个月有多少天一目了然

新单词总结

  • tuple 元组
  • count 计数
  • index 索引

总结

  • 这次我们了解了元组
    • 有了列表为什么还需要有元组呢?
    • 因为元组不可变
    • 列表可变
    • 这就是差异化带来的存在感

图片描述

  • 元组也可以支持索引和切片
  • 怎么理解这个不可变(immutable)呢?🤔
  • 下次再说 👋