Используя модуль timeit , вы можете выяснить, что самое быстрое делает это:
Во-первых, размещение в списке такого количества цифр, скорее всего, убьет вашу машину, поскольку она сохранит ее в памяти.
Однако вы можете проверить выполнение, используя что-то вроде этого. Он долго работал на моем компьютере, прежде чем я сдался, но я на старом ПК:
timeit.Timer('[2] * 1000000').timeit()
Другой возможный вариант - использовать модуль array , как указано, efficient arrays of numeric values
array.array('i', (2 for i in range(0, 1000000)))
Я не проверял время завершения обоих, но я уверен, что модуль array
, предназначенный для наборов номеров, будет быстрее.
Редактировать: Еще интереснее, вы можете взглянуть на numpy , который на самом деле кажется самым быстрым:
from numpy import *
array( [2 for i in range(0, 1000000)])
Еще быстрее из комментариев:
a = 2 * ones(10000000)
Awesmoe!