Python Reduce & Lambda с несколькими параметрами - PullRequest
0 голосов
/ 24 октября 2018

Есть ли способ, с помощью которого я мог бы использовать 3 переменные в сокращении (лямбда-f), например

reduce(lambda a, b, c : a*b+c, <list_for_a&b>, <range_for_c>)

Я могу использовать функцию map ().Но мысль о том, чтобы узнать новую возможность, если таковые имеются.

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете сжать две последовательности, и они будут работать на результат.

values_for_a_and_b = ... # I assume this is a list of tuples
values_for_c       = ... #
product = zip(values_for_a_and_b, values_for_c)    # This gives a list like [((a, b), c)]

Теперь похоже, что вы пытаетесь сделать карту, а не уменьшить.Вы можете использовать продукт следующим образом:

map(lambda x: x[0][0] * x[0][1] + x[1], product)

Но поскольку в Python нет сопоставления с образцом, он не очень элегантен.

...