3
arbeiten
Ich möchte ein kartesisches Produkt erstellen und die Tupel aus der zweiten und dritten Position wählen, die gleich sind oder sich nur durch 1Lambda mit itertools jetzt
import itertools
a = [(1,4), (2,2), (3,9),(7,4),(5,4)];
a1 = (list(itertools.product(*a)))
print (a1)
i=a1[1]
k=a1[2]
new_list = list(filter(lambda i,k: (i-k <= 1) , a1))
print (my_list)
Aber Ergebnis ist
[(1, 2, 3, 7, 5), (1, 2, 3, 7, 4), (1, 2, 3, 4, 5), (1, 2, 3, 4, 4), (1, 2, 9, 7, 5), (1, 2, 9, 7, 4), (1, 2, 9, 4, 5), (1, 2, 9, 4, 4), (1, 2, 3, 7, 5), (1, 2, 3, 7, 4), (1, 2, 3, 4, 5), (1, 2, 3, 4, 4), (1, 2, 9, 7, 5), (1, 2, 9, 7, 4), (1, 2, 9, 4, 5), (1, 2, 9, 4, 4), (4, 2, 3, 7, 5), (4, 2, 3, 7, 4), (4, 2, 3, 4, 5), (4, 2, 3, 4, 4), (4, 2, 9, 7, 5), (4, 2, 9, 7, 4), (4, 2, 9, 4, 5), (4, 2, 9, 4, 4), (4, 2, 3, 7, 5), (4, 2, 3, 7, 4), (4, 2, 3, 4, 5), (4, 2, 3, 4, 4), (4, 2, 9, 7, 5), (4, 2, 9, 7, 4), (4, 2, 9, 4, 5), (4, 2, 9, 4, 4)]
new_list = list(filter(lambda i,k: (i-k <= 1) , a1))
TypeError: <lambda>() missing 1 required positional argument: 'k'
Was stimmt nicht mit meinem Lambda?
Sie setzen 'my_list' auf eine leere Liste und dann, dass Sie filtern. Wenn Sie mit nichts anfangen, ist es egal, was Sie herausfiltern, Sie werden immer noch nichts haben. –