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
验证地址是否随内容变化
列表是可变对象,但只要不重新赋值,**修改元素不会改变其地址**:
易通cmseasy免费的企业建站程序3.0 UTF-8 日文版
0
九州易通科技开发的核心产品易通企业网站系统(CmsEasy3.0)是充分按照SEO最佳标准来开发,营销实用性非常强企业建站系统。灵活的静态化控制,可以自定义字段,自定义模板,自定义表单,自定义URL,交叉绑定分类,地区,专题等多元化定制大大增加了企业网站的各种需求空间。强大的模板自定义可以轻松打造出个性的栏目封面,文章列表,图片列表,下载列表,分类列表,地区列表等等。主体功能列表如下:支持生成ht
0 立即学习“Python免费学习笔记(深入)”;
- 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() 就够了,简单直接又可靠。