Como convertir una lista de parejas de numeros en una lista de trios... sin repetir las parejas!
Publicado por Jac (14 intervenciones) el 06/10/2022 13:46:31
Tengo esta lista de parejas de numeros:
<PYTHON 2.x>
</PYTHON 2.x>
Ahora quiero acortar la longuitud de esta lista de 21 parejas, convirtiendola en trios de numeros.
Trios donde se puedan observar todas esas parejas, pero sin repetir.
Y lo hago asi:
<PYTHON 2.x>
</PYTHON 2.x>
En este ultimo listado aparecen "7 trios" donde puedes observar las "21 parejas" iniciales sin repetir.
Este ejemplo fuciona bien, muy bien, pero solo cuando cantidad=7.
Podeis probar cambiando cantidad=7 por cualquier otro numero, y vereis que no funciona.
Sabeis como se puede programar esto mismo para una lista de parejas mayor o distinta de cantidad=7?
Por ejemplo, para cantidad=9, 21, 23, 1000... etc.
Gracias por leerme y un saludo!
Jac.
<PYTHON 2.x>
1
2
3
4
5
6
7
cantidad=7
print "Parejas de numeros:"
for a in range (1, cantidad+1):
for b in range (a+1, cantidad+1):
print a,b
</PYTHON 2.x>
Ahora quiero acortar la longuitud de esta lista de 21 parejas, convirtiendola en trios de numeros.
Trios donde se puedan observar todas esas parejas, pero sin repetir.
Y lo hago asi:
<PYTHON 2.x>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cantidad=7 #Lo repito para que este codigo se pueda ejecutar por separado.
parejas=[]
print "Trios de numeros:"
for a in range (1, cantidad+1):
for b in range (a+1, cantidad+1):
for c in range (b+1, cantidad+1):
if [a, b] not in parejas:
if [a, c] not in parejas:
if [b, c] not in parejas:
print a,b,c
parejas.append([a, b])
parejas.append([a, c])
parejas.append([b, c])
</PYTHON 2.x>
En este ultimo listado aparecen "7 trios" donde puedes observar las "21 parejas" iniciales sin repetir.
Este ejemplo fuciona bien, muy bien, pero solo cuando cantidad=7.
Podeis probar cambiando cantidad=7 por cualquier otro numero, y vereis que no funciona.
Sabeis como se puede programar esto mismo para una lista de parejas mayor o distinta de cantidad=7?
Por ejemplo, para cantidad=9, 21, 23, 1000... etc.
Gracias por leerme y un saludo!
Jac.
Valora esta pregunta


0