Python Map()反向

时间:2014-01-10 15:19:21

标签: python

是否有一个函数可以获取函数列表和输入并输出输入函数列表?

所以像map,但是向后:

>>>map(lambda x: 2*x,[1,2,3,4,5,6,7,8,9])
[2, 4, 6, 8, 10, 12, 14, 16, 18]
>>>reverseMap([lambda x: x**2,lambda x: x**3],3)
[9,27]

3 个答案:

答案 0 :(得分:12)

您实际上可以使用map来执行此操作:

>>> map(lambda f: f(3), [lambda x: x**2,lambda x: x**3])
[9, 27]

使用要作为iterable应用的函数列表,然后将每个函数应用于输入(在本例中为3)。

答案 1 :(得分:6)

您可以使用简单的list comprehension

>>> funcs = [lambda x: x**2, lambda x: x**3]
>>> 
>>> [f(3) for f in funcs]
[9, 27]

答案 2 :(得分:4)

简单地说:

In [1]: [f(3) for f in lambda x: x**2,lambda x: x**3]
Out[1]: [9, 27]

如果您愿意,可以将其包装在一个函数中。