2017-10-06 2 views
1

Ich versuche einen Weg zu finden, 2 Listen zu kombinieren und dann die kombinierte Liste auf eine bestimmte Art und Weise zusammenzufassen. Die Summe der 2 vorherigen Elemente muss zum nächsten Element addiert werden. Die Summe der ersten Kombination, ((1, 2), (4,)), sollte (3,7,6) sein, weil 2 + 4 = 6.(Python) Wie kann ich alle Ergebnisse einer Kombination auf eine bestimmte Weise zusammenfassen?

Und dann nebeneinander gedruckt werden: ((1, 2), (4,)) (3,7,6) WENN es (sowohl die Kombination und seine Summe) kein bestimmtes Element enthalten (irgendwie alredy eingefügt).

Hier ist mein Code und meine Beispiele:

a=[1,2,3] 
b=[4,5,6] 

import itertools 

sets = [a,b]; 
ks = [2, 1,] 

combinations = itertools.product(*[itertools.combinations(set, k) for set, k in zip(sets, ks)]) 

for combination in combinations: 
    print (combination) 

Antwort

1

Gerade nach vorne:

for i in itertools.product(*[itertools.combinations(set, k) for set, k in zip(sets, ks)]): 
    i_sum = i[0][0] + i[0][1] 
    print(i, (i_sum, i_sum + i[1][0], i[0][1] + i[1][0])) 

Der Ausgang:

((1, 2), (4,)) (3, 7, 6) 
((1, 2), (5,)) (3, 8, 7) 
((1, 2), (6,)) (3, 9, 8) 
((1, 3), (4,)) (4, 8, 7) 
((1, 3), (5,)) (4, 9, 8) 
((1, 3), (6,)) (4, 10, 9) 
((2, 3), (4,)) (5, 9, 7) 
((2, 3), (5,)) (5, 10, 8) 
((2, 3), (6,)) (5, 11, 9) 
+0

@JoaoBatista, sind Sie willkommen – RomanPerekhrest

Verwandte Themen