2014-01-10 3 views
3

Есть функция, которая выполняет список функций и ввода и выводит список функций на входе?Python Map() reverse

Так как 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]