Мне нужно заполнить файл большим количеством записей, идентифицированных номером (тестовые данные). Количество записей очень велико, и идентификаторы должны быть уникальными, а порядок записей должен быть случайным (или псевдослучайным).Создать большую случайную последовательность уникальных номеров
Я попытался это:
# coding: utf-8
import random
COUNT = 100000000
random.seed(0)
file_1 = open('file1', 'w')
for i in random.sample(xrange(COUNT), COUNT):
file_1.write('ID{0},A{0}\n'.format(i))
file_1.close()
Но это едят все моей памяти.
Есть ли способ генерации большой перетасованной последовательности последовательных (не обязательно, но это было бы красиво, иначе уникально) целые числа? Используя генератор и не сохраняя всю последовательность в ОЗУ?
@Blender, не нужен ли этот метод для хранения всех элементов в памяти? – Dogbert
@Dogbert: Пройдите мимо ответов с наибольшим количеством оборотов. Есть несколько проблем, связанных с памятью. – Blender
У вас действительно есть 100 миллионов номеров, или вопрос более общий? – EOL