python3之python的核心数据类型(元组)
----------
那么,为什么我们要用一种类似列表这样的类型,尽管它支持的操作很少,坦白地说,元组在实际中往往不像列表这样常用,但是 它的关键是不可变性。如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。
----------
元组对象基本上就像一个不可以改变的列表。就像列表一样,元组是序列,但是它具有不可变性,和字符串类似。从语法上讲,它们编写在圆括号中而不是方括号中,它们支持任意类型、任意嵌套以及常见的序列操作:
>>> T=(1,2,3,4)
>>>len(T)
4
>>>T+(5,6)
(1,2,3,4,5,6)
>>>T[0]
1
在python3.0中,元组还有两个专有的可调用方法,但它的专有方法不像列表所拥有的那么多:
>>>T.index(4)
3
>>>T.count(4)
1
元组的真正的不同之处就在于一旦创建后就不能再改变。也就是说,元组是不可变的序列:
>>>T[0]=2
...error text omitted...
TypeError: 'tuple' object does not support item assignment
与列表和字典一样,元组支持混合的类型和嵌套,但是不能增长或缩短,因为它们是不可变的:
>>>T=('spam',3.0,[11,22,33])
>>>T[1]
3.0
>>>T[2][1]
22
>>>T.append(4)
AttributeError:'tuple' object has not attribue 'append'
那么,为什么我们要用一种类似列表这样的类型,尽管它支持的操作很少,坦白地说,元组在实际中往往不像列表这样常用,但是 它的关键是不可变性。如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。