You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

列表[1]与[1,1]哪个占用内存更多?原因解析

Python列表内存占用对比:[1] vs [1,1]
  • 结论:b = [1,1]占用的内存空间比a = [1]更大
  • 核心原因:
    • Python列表本质是动态数组结构,它的内存开销主要包含两部分:列表自身的元数据(比如长度、容量),以及存储元素引用的指针数组。
    • 不管列表里的元素是不是指向同一个对象,指针数组都会为每个元素位置分配一个指针空间(64位系统下每个指针占8字节)。a只有1个指针位置,b有2个,光是这部分就差了8字节。
    • 至于b里两个1指向同一个内存地址,这只是Python对小整数的复用机制(小整数池),这个1的内存只占用一次,不会因为被列表多次引用而重复计算,但这并不影响列表本身需要为两个引用位置分配内存。
  • 疑问拆解:你看到id(b[0]) == id(b[1])是对的,但这只说明两个元素指向同一个对象,而列表的内存开销是自身的结构(存引用的数组)带来的,和元素对象是否复用无关。

内容的提问来源于stack exchange,提问作者invalid syntax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:02:05