Python中有两种有序列表,即list(列表)和tuple(元组),tuple和list非常类似,本文介绍list和tuple的区别以及各自的优缺点。
语法结构不同
list使用"[]"
,而tuple则使用"()"
list实例
1 2 3 |
>>> family = ['baba', 'mama', 'wo'] >>> family ['baba', 'mama', 'wo'] |
tuple实例
1 |
family = ('baba', 'mama', 'wo') |
可变和不可变
list是可变的,而tuple是不可变的,我们也可以将tuple理解为是一种不可变的list。list可以使用append()
和insert()
等方法改变list,而tuple是不可以的。
那么,难道tuple就真的不可改变吗?看下面这个实例:
1 2 3 4 5 |
>>> tuple = ('a', 'b', ['C', 'D']) >>> tuple[2][0] = 'E' >>> tuple[2][1] = 'F' >>> tuple ('a', 'b', ['E', 'F']) |
上个例子中,我们定义了一个tuple,这个tuple有三个元素,即'a'、'b'和一个list,后来我们发现tuple变了,这是由于tuple中这个list元素改变了,所以看似tuple也跟着改变了。
关于tuple不可变我们该如何理解呢?tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!