¿Cómo creo 4 listas diferentes de números aleatorios sin superponerlas usando Python?

CorePress2024-01-24  9

Necesito crear 4 listas de números aleatorios que contengan 6 números cada una, estos números no pueden superponerse. ¿Cómo puedo hacerlo? Lo siguiente solo genera 1 lista. Necesito 4.

import random

list_numbers = [random.randint(8,29) for x in range(6)]
print(list_numbers)

4

¿Qué quieres decir con "superposición"? Si quiere decir que el mismo número no puede aparecer dos veces en una lista, utilice random.sample(range(8, 28), k=6). Si quiere decir que si un número aparece en una lista, no puede aparecer en otra (es decir, todas las listas deben tener elementos únicos), use random.shuffle(list) y luego divida el resultado en 4 listas de 6 eelementos cada uno.

usuario3064538

26/03/2021 a las 18:56

Lo siento, quise decir random.sample(range(8, 28+1), k=6)

usuario3064538

26/03/2021 a las 19:02

1

@Boris, el rango del 8 al 28 solo contiene 20 números; necesitarías tener 24 para obtener 4 listas únicas de 6.

-Mark Ransom

26/03/2021 a las 19:10



------------------------------------

Luciana, debes aclarar lo que quieres decir con "no se puede superponer". Tenga en cuenta que la función randint() que está llamando no garantiza la unicidad dentro del conjunto. Ejecuté su programa tres veces y la tercera vez obtuvo: [14, 9, 22, 8, 17, 9]. Entonces, ¿no constituyen los dos 9 una "superposición"?

De todos modos, si sólo quieres cuatro listas de seis números enteros aleatorios, puedes llamar a la función cuatro veces. O llámalo una vez con range(24) y subdividelolistas electrónicas.

Respondido

26 de marzo de 2021 a las 19:01

José Brennan

José Brennan

1

1

1 insignia de bronce

0



------------------------------------

Terminé usando NumPy en su lugar.

import numpy as np

gen_list = np.random.choice(range(4,29), 24, replace = False).reshape(-1,4)
Respondido

28 de marzo de 2021 a las 15:17

Luciana

Luciana

1

2

2 insignias de bronce

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare