una sirve randint que posiciones para obtener numero listas lista generar crear comandos aleatorios aleatorio aleatorias python file list select random

python - sirve - Seleccione 50 elementos de la lista al azar para escribir en el archivo



obtener un numero aleatorio en python (3)

Creo que random.choice() es una mejor opción.

import numpy as np mylist = [13,23,14,52,6,23] np.random.choice(mylist, 3, replace=False)

la función devuelve una matriz de 3 valores elegidos al azar de la lista

Hasta ahora he descubierto cómo importar el archivo, crear nuevos archivos y aleatorizar la lista.

Tengo problemas para seleccionar solo 50 elementos de la lista al azar para escribir en un archivo?

def randomizer(input,output1=''random_1.txt'',output2=''random_2.txt'',output3=''random_3.txt'',output4=''random_total.txt''): #Input file query=open(input,''r'').read().split() dir,file=os.path.split(input) temp1 = os.path.join(dir,output1) temp2 = os.path.join(dir,output2) temp3 = os.path.join(dir,output3) temp4 = os.path.join(dir,output4) out_file4=open(temp4,''w'') random.shuffle(query) for item in query: out_file4.write(item+''/n'')

Entonces, si el archivo de aleatorización total fue

example: random_total = [''9'',''2'',''3'',''1'',''5'',''6'',''8'',''7'',''0'',''4'']

Me gustaría tener 3 archivos (out_file1 | 2 | 3) con el primer conjunto aleatorio de 3, el segundo conjunto aleatorio de 3 y el tercer conjunto aleatorio de 3 (para este ejemplo, pero el que quiero crear debería tener 50)

random_1 = [''9'',''2'',''3''] random_2 = [''1'',''5'',''6''] random_3 = [''8'',''7'',''0'']

Entonces el último ''4'' no se incluirá, lo cual está bien.

¿Cómo puedo seleccionar 50 de la lista que asigné al azar?

Mejor aún, ¿cómo podría seleccionar 50 al azar de la lista original?


Si la lista está en orden aleatorio, puede simplemente tomar los primeros 50.

De lo contrario, use

random.sample(the_list, 50)

texto de ayuda random.sample :

sample(self, population, k) method of random.Random instance Chooses k unique random elements from a population sequence. Returns a new list containing elements from the population while leaving the original population unchanged. The resulting list is in selection order so that all sub-slices will also be valid random samples. This allows raffle winners (the sample) to be partitioned into grand prize and second place winners (the subslices). Members of the population need not be hashable or unique. If the population contains repeats, then each occurrence is a possible selection in the sample. To choose a sample in a range of integers, use xrange as an argument. This is especially fast and space efficient for sampling from a large population: sample(xrange(10000000), 60)


Una manera fácil de seleccionar elementos aleatorios es barajar y luego cortar.

import random a = [1,2,3,4,5,6,7,8,9] random.shuffle(a) print a[:4] # prints 4 random variables