【发布时间】:2012-03-10 05:54:28
【问题描述】:
可能重复:
What's the difference between list and tuples in Python?
我有一个理论问题: 如果我说元组只是不可变的列表,我怎么错了(或者我不是?)?
我知道元组仅在某种程度上是不可变的:如果我有一个包含可变对象的元组(列表、python 对象等)-它在某种程度上是可变的,因为我可以更改该对象的值,但仍然- 元组结构,它指向元素的指针保持不变,所以元组本身是不可变的。我知道,你不必解释。
据我所知,除了可变性之外 - 没有任何区别。对于这两种类型,运算符 + 返回由操作数元素组成的足够结构,按顺序,+= 运算符也可以正常工作,两者都可以通过简单索引或切片访问,都响应 len()、map()(这是小技巧:map(foo, tuple) 返回列表,而不是元组。我想我明白了这种行为的原因,但仍然值得一提)、all()、any() 等...
所以 - 相同的功能,略有不同的语法,可变性的主要区别。那正确吗?还是我错过了什么?
【问题讨论】: