我听说Python使用间接寻址来实现列表。也就是说,Python列表中的每个元素实际上是内存中实际元素数据(可以是整数、字符串或任何其他数据类型)存储位置的指针或引用。所以当我用
a = ["xyz",2,"deer"]
id(a[0])
我拿到4344.96万。但是当我这样做的时候: id(a[1]) id(a[2]) 分别生成1403048416和43489824,而不是预期的43449616(或一些倍数)和43449632(或一些倍数),假设内存指针使用相同的内存块!在
有人能解释一下我对间接寻址(或调用id())的理解有什么问题吗???在
谢谢!在
使用id()时,您将从数组中拉出对象并获取对象的地址。在下面的示例中,可以看到字符串“xyz”具有相同的地址,无论它是在数组中还是存储在变量中:
看起来您希望id()为您提供列表中指针的地址,python不提供任何获取此地址的方法,但您可以根据需要确定它。在
当然,你不需要这些地址。通过查看结构定义in the cpython headers.,可以找到有关列表的更多详细信息
相关问题 更多 >
编程相关推荐