Ho bisogno di riempire un file con molti record identificati da un numero (dati di test). Il numero di record è molto grande e gli ID dovrebbero essere unici e l'ordine dei record dovrebbe essere casuale (o pseudo-casuale).Genera una grande sequenza casuale di numeri univoci
ho provato questo:
# 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()
ma è mangiare tutta la mia memoria.
C'è un modo per generare una grande sequenza mescolata di numeri interi consecutivi (non necessariamente ma sarebbe bello, altrimenti unico)? Usando un generatore e non mantenendo tutta la sequenza nella RAM?
@Blender, questo metodo non dovrebbe richiedere la memorizzazione di tutti gli elementi in memoria? – Dogbert
@Dogbert: scorrere oltre le risposte con i più upvotes. Ce ne sono alcuni che affrontano il problema della memoria. – Blender
Hai davvero 100 milioni di numeri o la domanda è più generale? – EOL