kev xlre
tengo esta lista:
colors = ["R", "G", "B", "Y"]
y quiero obtener 4 letras aleatorias de él, pero incluida la repetición.
Ejecutar esto solo me dará 4 letras únicas, pero nunca letras repetidas:
print(random.sample(colors,4))
¿Cómo obtengo una lista de 4 colores, con letras repetidas posibles?
En Python 3.6, el nuevo elecciones aleatorias() función abordará el problema directamente:
>>> from random import choices
>>> colors = ["R", "G", "B", "Y"]
>>> choices(colors, k=4)
['G', 'R', 'G', 'Y']
trinquete
Con random.choice
:
print([random.choice(colors) for _ in colors])
Si la cantidad de valores que necesita no corresponde a la cantidad de valores en la lista, entonces use range
:
print([random.choice(colors) for _ in range(7)])
Desde Python 3.6 en adelante también puedes usar random.choices
(plural) y especifique el número de valores que necesita como el k argumento.
Priyank
Intentar numpy.random.choice
(documentación numpy-v1.13):
import numpy as np
n = 10 #size of the sample you want
print(np.random.choice(colors,n))
Este código producirá los resultados que necesita. He agregado comentarios a cada línea para ayudarlo a usted y a otros usuarios a seguir el proceso. Por favor, siéntase libre de hacer cualquier pregunta.
import random
colours = ["R", "G", "B", "Y"] # The list of colours to choose from
output_Colours = [] # A empty list to append results to
Number_Of_Letters = 4 # Allows the code to easily be updated
for i in range(Number_Of_Letters): # A loop to repeat the generation of colour
output_Colours.append(random.sample(colours,1)) # append and generate a colour from the list
print (output_Colours)
Relacionado: Sin reemplazo (mantener orden: stackoverflow.com/questions/6482889/… ; sin mantener orden (normal): stackoverflow.com/questions/22741319/…, ponderado: stackoverflow.com/questions/43549515/…)
– usuario202729
30 de diciembre de 2021 a las 3:51