Al final he podido crear un lista por comprension. Aunque claro, pasa de los 80 caracteres y no esta muy bien visto en Python. Aparte, creo que a veces, este tipo de listas son menos legibles.
Como no puedo meter ni el
break ni el
else en la lista por comprension, he transformado los vectores en conjuntos. Y aplicando el metodo
intersection me filtra que no haya coincidencias entre grupos.
Código Python:
Ver originalmatriz = ([1,2,3], [4,5,6], [4,5,7], [7,8,9],[1,10,11])
SIN COMPRENSION:
Código Python:
Ver originalfor vector in combinations(matriz, 2):
if set(vector[0]).intersection(set(vector[1])) == set():
print(vector)
LISTA POR COMPRENSION:
Código Python:
Ver originalsinRepetir = [vector for vector in combinations(matriz,2) if set(vector[0]).intersection(set(vector[1])) == set()]
RESULTADO:
Código Python:
Ver original([1, 2, 3], [4, 5, 6])
([1, 2, 3], [4, 5, 7])
([1, 2, 3], [7, 8, 9])
([4, 5, 6], [7, 8, 9])
([4, 5, 6], [1, 10, 11])
([4, 5, 7], [1, 10, 11])
([7, 8, 9], [1, 10, 11])