Я хотел создать список с некоторыми инициализированными значениями, потому что пустой список не вариант в Python. Поэтому я начал думать, что будет быстрее: l = [None for i in range(1000)]
или l = [None] * 1000
И я попытался проверить его с помощью timeit
:
In [56]: timeit.timeit('l = [None] * 1000', number=10000)
Out[56]: 0.04936316597741097
In [58]: timeit.timeit('l = [None for i in range(1000)]', number=10000)
Out[58]: 0.2318978540133685
Я был удивлен, что [None] * 1000
быстрее.
- Почему это так (и мой метод проверки производительности правильный)?
- Есть ли более быстрый способ инициализации "пустого" списка?