python – 为什么要实现两个如此相似的数据结构,如List和Tuple

参见英文答案 > What’s the difference between lists and tuples?                                    18个
>            python: list vs tuple, when to use each?                                     7个
在python中,列表数据结构是一系列元素.
类似地,元组也是一系列元素,但元组是不可变的.

是什么原因产生了这样一个类似的数据结构,那就是只有功能,而不是列表,它是不能改变的?它是否可以通过不可变来节省内存空间?

此外,如果列表和元组包含完全相同的数据,它们是否会在内存中使用相同的空间量?

解决方法:

不可变类型是可清除的,可以用作字典键.这有效:

key = (1, 2, 3)
d = {key: 1}

但这不是:

key = [1, 2, 3]
d = {key: 1}

如果是这样,你会期望这样做?

key[0] = 2
print d[key]        # id(key) hasn't changed, so surely the lookup should still work
print d[[1, 2, 3]]  # but also, we stored a piece of data at [1, 2, 3], didn't we?
print d[[2, 2, 3]]  # but if d[key] works, surely we can expand key to its value
上一篇:c – 如何在编译时循环一个元组?


下一篇:单特征标记文件的读取