Why implement two so similar data structures like List and Tuple
本问题已经有最佳答案,请猛点这里访问。
在python中,
为什么要建立这样一个类似的数据结构,它是唯一的特性,而不是列表,是因为它不能被改变?它是否可能通过不可变而节省内存空间?
另外,如果一个列表和一个元组包含完全相同的数据,它们会在内存中使用相同数量的空间吗?
不可变类型是可哈希的,可以用作字典键。这工作:
1 2 | key = (1, 2, 3) d = {key: 1} |
但这并不是:
1 2 | key = [1, 2, 3] d = {key: 1} |
如果是这样的话,你希望它能做什么?
1 2 3 4 | 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 |