【发布时间】:2016-10-30 06:45:02
【问题描述】:
我听说 Python 使用间接来实现列表。也就是说,Python 列表中的每个元素实际上是一个指针或指向内存中存储实际元素数据(可以是整数、字符串或任何其他数据类型)的位置的引用。所以当我使用
创建一个列表时 a = ["xyz",2,"deer"]
id(a[0])
我得到 43449600。但是当我这样做时: 编号(一[1]) 身份证(一[2]) 假设内存指针使用相同的内存块,则分别产生 1403048416 和 43489824,而不是预期的 43449616(或某些倍数)和 43449632(或某些倍数)!
有人可以解释我对间接(或调用 id())的理解有什么问题吗???
谢谢!
【问题讨论】:
-
如果存储的是指向元素的指针而不是元素,它们可以指向任何地方。如果您存储了元素,那么您将获得连续的地址。
标签: python list cpython indirection