Python - Como convertir una lista de parejas de numeros en una lista de trios... sin repetir las parejas!

 
Vista:

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>

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder