赞
踩
tuple是另一种有序的列表,也称为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
同样是表示班里同学的名称,用tuple表示如下:
>>> t = ('Zhangsan', 'Lisi', 'Wangwu')
创建tuple和创建list唯一不同之处是用( )替代了[ ]。
创建好了 t 就不能改变了,tuple没有 append()方法,也没有insert()和pop()方法。所以,新同学没法直接往 tuple 中添加,老同学想退出 tuple 也不行。
获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素。
>>> t[0] = 'hhh'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
tuple和list一样,可以包含 0 个、1个和任意多个元素,包含多个元素的 tuple,前面我们已经创建过了,接下来我们创建包含 0 个和1个元素的 tuple。
0个元素的tuple也就是空tuple,直接用 ()表示:
>>> t = ()
>>> print t
()
创建包含1个元素的 tuple ,先按照我们的理解来试试:
>>> t = (1)
>>> print t
1
??? 好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?
因为()
既可以表示tuple
,又可以作为括号
表示运算时的优先级
,结果 (1)
被Python解释器计算出结果 1
,导致我们得到的不是tuple,而是整数 1。用()定义单元素的tuple造成了歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”
,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
多元素 tuple 加不加这个额外的“,”效果是一样的:
>>> t = (1, 2, 3,)
>>> print t
(1, 2, 3)
>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])
,
放在结尾防止歧义;Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。