使用具有多变量函数的map函数

时间:2012-02-04 07:01:34

标签: python dictionary

我有一个多变量函数,我想用它来使用map()函数。

示例:

def f1(a, b, c):
    return a+b+c
map(f1, [[1,2,3],[4,5,6],[7,8,9]])

3 个答案:

答案 0 :(得分:10)

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]

答案 1 :(得分:5)

你做不到。使用包装器。

def func1(a, b, c):
    return a+b+c

map((lambda x: func1(*x)), [[1,2,3],[4,5,6],[7,8,9]])

答案 2 :(得分:3)

您可以简单地将多参数函数包装在另一个只接受一个参数作为元组/列表的函数中,然后将其传递给内部函数。

map(lambda x: func(*x), [[1,2,3],[4,5,6],[7,8,9]])