python版本:Python 3.6.0b3(默认,2016年11月16日,16:55:09)

我有以下输出:

>>> sys.getsizeof([0 for x in range(10**7)])
81528056
>>> sys.getsizeof([0 for x in range(10**8)])
859724472
>>> sys.getsizeof([0 for x in range(10**8+100500)])
859724472
>>> sys.getsizeof([0 for x in range(10**9)])
8058558880

Length of lists:
>>> len([0 for x in range(10**8)])
100000000
>>> len([0 for x in range(10**8+100500)])
100100500
>>>


为什么我对len是的列表有相同的getsizeof输出:
10**810**8+100500

最佳答案

list is resized较大时,其长度将增加a bit more than 1/8 of the requested length。 100500远远小于10 ** 8的1/8,这意味着列表可能无需为了适应新条目而从其先前的调整大小进行调整。

关于python - 为什么sys.getsizeof对于很大的列表返回相同的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41010652/

10-12 23:02