Создать случайный список целых чисел в Python

Я хотел бы создать случайный список целых чисел для целей тестирования. Распределение чисел не важно. Единственное, что считает - это время . Я знаю, что генерация случайных чисел - трудоемкая задача, но должен быть лучший способ.

Вот мое текущее решение:

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: 0,0058455221653

KennyTM: 0,00219276118279

NumPy пришел, увидел и победил .

68
задан Peter Mortensen 21 August 2018 в 19:18
поделиться