我创建了两个名单l1和l2,但每一个具有不同的创建方法:
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内部的一些东西,还是其他一些解释?