我知道 Python 中列表和元组的主要区别是列表可变而元组不可变。除此之外,它们拥有不同的方法,但我对它们的了解很少。除了不可变性之外,在 Python 3 中使用元组与列表相比是否有任何优缺点?它们中有一个访问时间更快、占用更小内存或包含更多方法吗?它们的内部结构是否有所不同?或者元组只是一个不可变列表,没有其他特点吗?
我知道 Python 中列表和元组的主要区别是列表可变而元组不可变。除此之外,它们拥有不同的方法,但我对它们的了解很少。除了不可变性之外,在 Python 3 中使用元组与列表相比是否有任何优缺点?它们中有一个访问时间更快、占用更小内存或包含更多方法吗?它们的内部结构是否有所不同?或者元组只是一个不可变列表,没有其他特点吗?
在两个上运行dir命令-方法列表有所不同(下面展示了pop)。 元组可能更快。
>>> alist = [1,2,3]
>>> atuple = (1,2,3)
>>> alist.pop()
3
>>> atuple.pop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'pop'
append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort' 这些方法可以使用于列表,但不能用于元组——这是有道理的,因为元组是不可变的。
从哲学角度来看,有些人期望列表是同质的,而对元组则没有这种期望。
'