相关疑难解决方法(0)

为什么两个相同的列表具有不同的内存占用?

我创建了两个名单l1l2,但每一个具有不同的创建方法:

import sys

l1 = [None] * 10
l2 = [None for _ in range(10)]

print('Size of l1 =', sys.getsizeof(l1))
print('Size of l2 =', sys.getsizeof(l2))
Run Code Online (Sandbox Code Playgroud)

但输出让我感到惊讶:

Size of l1 = 144
Size of l2 = 192
Run Code Online (Sandbox Code Playgroud)

使用列表推导创建的列表在内存中的大小更大,但是这两个列表在Python中是相同的.

这是为什么?这是CPython内部的一些东西,还是其他一些解释?

python memory-management list python-internals

148
推荐指数
2
解决办法
6418
查看次数