У меня есть функция с несколькими переменными, и я хотел бы использовать функцию map () с ней.
Пример:
def f1(a, b, c): return a+b+c map(f1, [[1,2,3],[4,5,6],[7,8,9]])
itertools.starmap сделано для этого:
itertools.starmap
import itertools def func1(a, b, c): return a+b+c print list(itertools.starmap(func1, [[1,2,3],[4,5,6],[7,8,9]]))
Вывод:
[6, 15, 24]
Вы не можете. Используйте обертку.
def func1(a, b, c): return a+b+c map((lambda x: func1(*x)), [[1,2,3],[4,5,6],[7,8,9]])
Вы можете просто обернуть свою функцию с несколькими аргументами в другую функцию, которая принимает в качестве кортежа / списка только один аргумент, а затем передает его внутренней функции.
map(lambda x: func(*x), [[1,2,3],[4,5,6],[7,8,9]])