Python中list(列表)和tuple(元组)的区别及优缺点

Python中有两种有序列表,即list(列表)和tuple(元组),tuple和list非常类似,本文介绍list和tuple的区别以及各自的优缺点。

语法结构不同

list使用"[]",而tuple则使用"()"
list实例

tuple实例

可变和不可变

list是可变的,而tuple是不可变的,我们也可以将tuple理解为是一种不可变的list。list可以使用append()insert()等方法改变list,而tuple是不可以的。

那么,难道tuple就真的不可改变吗?看下面这个实例:

上个例子中,我们定义了一个tuple,这个tuple有三个元素,即'a'、'b'和一个list,后来我们发现tuple变了,这是由于tuple中这个list元素改变了,所以看似tuple也跟着改变了。

关于tuple不可变我们该如何理解呢?tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!