所以我正在玩list对象,并发现一些奇怪的事情,如果list创建list()它使用更多的内存,而不是列表理解?我正在使用Python 3.5.2
In [1]: import sys
In [2]: a = list(range(100))
In [3]: sys.getsizeof(a)
Out[3]: 1008
In [4]: b = [i for i in range(100)]
In [5]: sys.getsizeof(b)
Out[5]: 912
In [6]: type(a) == type(b)
Out[6]: True
In [7]: a == b
Out[7]: True
In [8]: sys.getsizeof(list(b))
Out[8]: 1008
Run Code Online (Sandbox Code Playgroud)
来自文档:
列表可以通过以下几种方式构建:
- 使用一对方括号表示空列表:
[]- 使用方括号,用逗号分隔项目:
[a],[a, b, c]- 使用列表理解:
[x for x in iterable]- 使用类型构造函数:
list()或list(iterable)
但似乎使用list()它会占用更多内存. …