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内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。