2014-01-10 65 views
3

是否有一个函数获取函数和输入列表,并输出函数列表中的输入操作?Python Map()反向

所以像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] 

回答

12

你其实可以用一个map做到这一点:

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

使用要应用的迭代的功能列表,然后将它们中的每一个应用于您的输入(在这种情况下为3)。

4

如何简单:

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

你可以,如果你喜欢它包装在一个函数。

6

您可以使用一个简单的list comprehension

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