第五章 元组 tuple
00 min
2024-4-23

  • 有序的元素组成的集
  • 元组用()将元素括起来
  • 元组只能用来查询,不可增删改,为不可变可迭代对象
 

3.1 初始化

  • tuple() → empty tuple
  • tuple(iterable) → tuple initialized from iterable’s items
 

3.2 不可变含义

在理解元组不可变之前,先敲下代码,如下
发生了什么?第一段代码汇报错,提示tuple' object does not support item assignment,显然元组是不可变的。而第二段代码能正常运行,打印(1, 2, [20, 4, 5]).
为什么呢?不要似懂非懂的以为虽然元组是不可变的,但是里面的列表是可变的,所以元组中的嵌套列表可以变动。实际上是因为,对于引用类型数据,元组内存放的是指向列表的地址而不是列表内容本身,所以tuple1[2][0] = 20是通过列表的地址去改变列表的内容,而元组中存放的指向列表内容的地址依然是不变的。(对于简单数据类型如数字,字符串等,可以理解为在元组中存放的是其本身,实际上不是)
 

3.3 索引

索引和列表规则一样,不可以超界.
只能通过索引对元组做查询

3.4 查询

元组有两个专有的可调用方法,但它的独有方法不像列表那么多:
以上查询,时间复杂度都为O(n),效率不高,数据规模庞大时避免使用。