python如何打印出列表的地址

Python中可用id()获取列表内存地址,返回十进制整数,hex()可转十六进制;修改列表元素不改变地址,但重新赋值会创建新对象;无需且不应使用ctypes等模拟C指针。

Python 中可以用内置函数 id() 获取对象的内存地址,列表也不例外。

用 id() 查看列表地址

id() 返回的是该对象在内存中的唯一标识(通常对应底层内存地址),对列表直接调用即可:

  • my_list = [1, 2, 3]
  • print(id(my_list)) # 输出类似 140234567890176 的整数

注意:地址是整数,不是十六进制字符串

虽然本质是内存地址,但 id() 默认返回十进制整数。如需十六进制格式(更接近传统“地址”写法),可套一层 hex()

  • print(hex(id(my_list))) # 输出类似 0x7f8b2c3d4e50

验证地址是否随内容变化

列表是可变对象,但只要不重新赋值,**修改元素不会改变其地址**:

  • lst = [1, 2]
  • print(id(lst)) # 比如 140234567890176
  • lst.append(3)
  • print(id(lst)) # 还是 140234567890176
  • lst = [4, 5] # 重新赋值 → 创建新列表
  • print(id(lst)) # 地址变了

不建议用 & 或 ctypes 模拟 C 风格取地址

Python 没有真正的指针运算符 &。试图用 ctypes.addressof() 会报错,因为列表不是 ctypes 类型;强行转换不仅复杂、无必要,还容易出错。

基本上就这些 —— 用 id() 就够了,简单直接又可靠。