Veamos varios métodos para conseguirlo. Partimos de una lista de números enteros entre 1 y 100 y deseamos tomar 10 números al azar.
Método 1
Seguidamente vamos a mostrar el código para generar números aleatorios sin repetición.# Generación de 10 números aleatorios entre 1 y 100 sin repetición
import random
#creamos una lista con un primer número aleatorio
lista=[random.randrange(100)+1] #el primer número nunca se repite
n=1 #n indica la cantidad de números en la lista
while n<10:
x=random.randrange(100)+1
norepe=True #suponemos inicialmente que el número generado no está repetido
while norepe:
for j in range(len(lista)):
if x==lista[j]:
norepe=False #aquí hemos detectado que el número si esta repetido
if norepe:
lista.append(x)
n+=1
print(lista)
Método 2
Veamos otro método programado de forma breve para obtener aleatorios únicos en una lista.# Generación de 10 números aleatorios entre 1 y 100 sin repetición
import random
print(random.sample(range(1,101), 10))
Método 3
En este método la idea es crear la lista entre 1 y 100, luego la desordenamos y finalmente imprimimos de ella únicamente los 10 primeros elementos.# Generación de 10 números aleatorios entre 1 y 100 sin repetición
import random
miLista=list(range(1,101)) #creamos una lista del 1 al 100
random.shuffle(miLista) #desordenamos la lista
print(miLista[:10]) #mostramos únicamente los 10 primeros
No hay comentarios:
Publicar un comentario