元祖有两个主要作用:
- 当做记录用的很强大的数据类型
- 充当不可变的列表
元祖的基本特点
- 大小不可变、元素内存地址不可变(如果是列表可以修改内容) 的对象
- 有序元素组成的集合,可索引可迭代
元祖的初始化
-
()
:使用小括号定义空元祖 -
tuple()
:新建空元祖 -
tuple(iterable)
:使用一个可迭代对象新建元祖t = tuple() # 新建空元祖 t = tupule(range(10)) # 先新建元祖,再将其赋值给t 不是改变元祖 t 的内容,而是重新定义了一个新元祖 t(赋值即重新定义)
-
(ele1, ele2, ... , elen)
:给出所有元素值新建元祖 -
(ele1, ele2, ... , elen) * n
:使用*的方式初始化元祖,高效- 单元素的元祖定义:
(1,)
,数字后的‘,’不能少,防止与运算符产生歧义
- 单元素的元祖定义:
元祖元素的访问
- 支持索引
- 正索引:从左到右,从0开始
- 负索引:从右到左,从-1开始
- 索引越界会抛出IndexError异常
- 元祖元素的访问:
tuple[index]
元祖的查询
- 指定元素索引查询(不推荐使用)
-
tuple.index(value [,start [,end]])
:在列表中查询value第一次出现的位置- 可以指定起止索引值,起止索引默认从左到右
- 匹配不到value值,会抛出ValueError异常
- 时间复杂度:
O(n)
-
- 指定元素计数 ( 不推荐使用)
-tuple.count(value)
:查询列表中出现value出现的总次数
- 时间复杂度:O(n)
- 元素个数查询:
-
len(tuple)
:计数的方式来查询 - 时间复杂度:
O(1)
-
元祖使用建议
- 不要在元祖内部使用可变数据类型
网友评论