Я хотел бы создать случайный список целых чисел для целей тестирования. Распределение чисел не важно. Единственное, что считается: время. Я знаю, что генерация случайных чисел - трудоемкая задача, но должен быть лучший способ.
Здесь мое текущее решение:
import random
import timeit
# random lists from [0-999] interval
print [random.randint(0,1000) for r in xrange(10)] # v1
print [random.choice([i for i in xrange(1000)]) for r in xrange(10)] # v2
# measurement:
t1 = timeit.Timer('[random.randint(0,1000) for r in xrange(10000)]','import random') # v1
t2 = timeit.Timer('random.sample(range(1000), 10000)','import random') # v2
print t1.timeit(1000)/1000
print t2.timeit(1000)/1000
v2 быстрее, чем v1, но не работает в таком большом масштабе. Он дает следующую ошибку: " ValueError: образец больше, чем население
Знаете ли вы быстрое и эффективное решение, которое работает в этом масштабе?
Изменить:
Эндрю: 0.000290962934494
gnibbler's: 0.0058455221653
KennyTM's: 0.00219276118279
NumPy пришел, увидел, завоевал
Спасибо!