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