简介
tuple 是python内建数据结构之一,它本质上是一个序列,该序列的所有元素都处于一对小括号中,各元素之间又被逗号分隔。书写格式如下:
t = (1,2,3)
代码中的 t 为一个元组,数字 1,2,3 为元组的元素,可以看到元素之间用逗号隔开,且所有元素都在一对小括号中间。
元组元素
tuple 元素的数据类型可以不相同,比如:
t = (1,2,'3')
代码中的 t[0], t[1]为 int 类型,而 t[2] 为 string 类型
元组打包和序列拆包
元组打包是将一些序列打包成元组的操作,比如:
t = 1,2,3
代码中的 t 是一个由序列1,2,3打包形成的元组,这条语句得到的 t 如下图所示,t 为(1,2,3)。
序列拆包与元组打包是互逆的操作,它将元组拆分为序列,比如:
x, y, z = t #接上面的代码,t = (1,2,3)
代码中 x, y, z 分别取得1,2,3,注意:拆包操作要求等号左边的变量数和等号右边元组的元素个数相等。
常用情形
当需要处理的情形包含多种类型的数据时一般选择 tuple,tuple 可通过索引或拆包访问。
这里与list做一个比较,list 常用于处理同种类型的数据
怪癖
-
零个元素
当元组为空时(元素个数为0),使用一对小括号即可完成赋值。
empty = ()
empty 是一个空元组,在下图out[6]输出的是empty.__class__的属性,该属性表示empty的类型,所以变量empty的类型为 tuple
-
一个元素
当元组只有一个元素时,用一个逗号即可创建该元组,官方的解释是:
it is not sufficient to enclose a single value in parentheses # 将单个值放在括号中是不够的
举例:
t = 'sigleton',
元组与列表的比较
- 区别:tuple元素不可更改 (immutable),list元素 可以更改(mutable)
- 联系:1. 都是序列的一种;2. tuple中可以包含 list,list中也可以包含tuple