¿Cómo creo una lista de números aleatorios sin duplicados?
Intenté usar random.randint(0, 100)
, pero algunos números eran iguales. ¿Existe algún método/módulo para crear una lista de números aleatorios únicos?
Aceptado
Esto devolverá una lista de 10 números seleccionados del rango del 0 al 99, sin duplicados.
import random
random.sample(range(100), 10)
Puedes usar la función aleatoria del módulo aleatorio de esta manera:
import random
nums = list(range(1, 100)) # list of integers from 1 to 99
# adjust this boundaries to fit your needs
random.shuffle(nums)
print(nums) # <- List of unique random numbers
Tenga en cuenta aquí que el método aleatorio no devuelve ninguna lista como cabría esperar, solo baraja la lista pasada por referencia.
Primero puede crear una lista de números desde a
hasta b
, donde a
y b
son respectivamente los números más pequeños y mayores de su lista, luego mezclarla con el algoritmo de Fisher-Yates o utilizando el random.shuffle
método de Python.