我刚刚使用 Windows 7 64 位和 Python 2.7 32 位在 python 控制台中得到以下输出:
>>> a = {}
>>> for k in xrange(1000000): a[k] = k
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
>>> len(a)
21846
>>> a[21846]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 21846
>>> a[21846] = 21846
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
为什么我不能在 dict 中添加超过 21846 个项目?
这个数字(2 * 3 * 11 * 331)有什么特别之处?
注意:我的 RAM 比 sys.getsizeof(a) == 393356 多得多