python中除了list列表外,还有一种有序列表叫做元组:tuple,与list不同,tuple一旦被初始化后,就不能修改,这样在一定程度上保证了代码的安全性。
如上例,university的type是一个tuple,当要对其中第一个元素进行修改的时候,提示报错,因为该元组已被初始化,同样,在list中出现的insert,append函数都不能再使用,但依旧可以使用索引读取元组中的元素。
因为元组的元素在定义后不可修改,所以在定义元组的时候一定要注意初始化正确与否,,如果要定义一个空的tuple,可以写成():
>>>t = ()
>>>t
>()
但在某些特定的情况下,tuple的元素是可以改变的,,如下例:
表面上看tuple的元素确实被改变了,但变得其实不是tuple的元素,学过指针的都知道,这个地方可以理解为tuple指向的list位置是固定的,这里的list也在充当一个指针,list指向的位置的元素发生了改变。所以,tuple所谓的不变指的是其指向的每个元素都不发生改变,但指向一个list,就不能再指向其它对象,但list本身是可变的。