天天看点

python3之元组(tuple)

python3中元组(tuple)在定义长度后不可修改,删除、新增。只能查看

>>> a = ('a', 'b', 'c')
>>> a
('a', 'b', 'c')
           

查看元组长度

>>> len(a)

           

要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = ()
>>> t

           

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (,)
>>> t
(,)
           

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

可变的tuple

>>> t = ('a', 'b', 'c', ['1', '2'])
>>> t
('a', 'b', 'c', ['1', '2'])
>>> t[][] = 'x'
>>> t
('a', 'b', 'c', ['x', '2'])
>>> t[].append('z')
>>> t
('a', 'b', 'c', ['x', '2', 'z'])
>>> t[][-]
'z'
           

其实变的不是tuple元素,而是tuple中的list元素。

所以要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变。

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。