2.12Python下元组:不可变序列
Posted by 撒得一地 on 2016年1月24日 in python教程
上一篇: 2.11Python下关于列表的高级排序
下一篇: 2.13tuple函数
下一篇: 2.13tuple函数
元组和列表一样,也是一种序列。唯一的不同是元组不能修改。(你可能注意到了,字符串也是如此)。创建元组的语法很简单:如果你用逗号分隔一些值,那么你就自动创建了元组。
>>> 1,2,3 (1, 2, 3)
元组也是(大部分时候是)通过圆括号起来的:
>>> (1,2,3) (1, 2, 3)
空元组可以用没有包含内容的两个括号来表示:
>>> () ()
那么如何实现包括一个值的元组呢。实现方法有些奇特——必须加个逗号,即使只有一个值:
>>> 12 12 >>> 12, (12,) >>> (12,) (12,)
上面最后两个例子生成了一个长度为1的元组,而第一个例子根本不是元组。逗号是很重要的,只添加圆括号也是没用的:(42)和42是完全一样的。但是,一个逗号却能彻底改变表达式的值:
>>> 3*(20+2) 66 >>> 3*(20+2,) (22, 22, 22)
元组和序列有一点最大的不同是,元组是不可变序列,比如:
>>> x = [1,2,3] >>> x[0] = 2 >>> x [2, 2, 3] >>> y = (1,2,3) >>> y[0] = 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
从上面的例子可以看出,列表可以对值进行修改,而元组则不能修改值。
上一篇: 2.11Python下关于列表的高级排序
下一篇: 2.13tuple函数
下一篇: 2.13tuple函数