tuple ==> 元组,有序列表,一旦初始化就不能修改
-
tuple陷阱:当你定义一个tuple时,元素就必须被确定下来,比如
t = (1, 2) 输出 t (1, 2)
-
定义空的tuple或者一个元素:
定义 空 tuple时 t = () 输出 t ()
定义 一个数字元素时,也会加一个 ','以免误解为数学计算意义上的括号,字符串需要用到 ‘’,否则会报错 t = (1,) 输出 t 1 -- <class 'tuple'>,不加 ',' 则类型为 <class 'int'> t = (‘a’) 输出 t a --<class 'str'>
-
list 创建时使用
[]
,tuple 创建时使用()
,一定要区分好,把list和tuple结合起来,我们就可以组成一个“可变的”tuple:t = ('a', 'b', ['1', '2']) 更改元素 t[2][0] = 'X' t[2][1] = 'Y' 输出 t t = ('a', 'b', ['X', 'Y'])
tuple 在定义上是不可变的,上述
t
集合当然没有违反这个定义,在t
中,t[2]
是个集合list
,它是可变的,对于tuple来说,t[2]
它是个list集合,
一直是以集合存在于 tuple 中,所以 tuple保持了不可变更性,同时 list集合是可变的,所以就造成了 tuple 可变的假象。 -
访问元组tuple
t = (1, 2, 3, 4, 5) 访问元组 t[0] : 1 t[1:4] : (2, 3, 4, 5 )
删除元组,使用
del
函数,删除元组后,在进行元素操作会报name 'xx' is not defined
,元组未定义错误-
连接元组,使用
+
号,这个很有意思t1 = ('a', 'b') t2 = (1, 2 ) t1+t2 = ('a', 'b', 1, 2)
-
元组复制, 使用
*
号,就是乘法的意思t = ('a',) t*4 = ('a', 'a', 'a', 'a')
-
检测元素是否存在,使用
in
关键字,这是个判断 ,返回 True 或者 Falset = (1, 2, 3) 2 in t True
-
迭代
for x in t: print x
t = (1, 2, 3) for x in t: print(x)
输出结果:
1 2 3
将列表转换为元组,使用
tuple(seq)
函数,参数为 列表