将不同的功能映射到数据

时间:2016-06-28 13:55:18

标签: python

有没有办法让几个函数映射到生成结果列表的相同数据?

这样的东西
mapfunc([sin, cos, tan], data)

生成一个本质上映射的地图对象

[array(sin(data)), 
 array(cos(data)), 
 array(tan(data))]

pythonic方式是

[f(data) for f in [sin, cos, tan]]

但是有地图可以这样做吗?

编辑:发表评论(@Dan Getz)后,我发现输出太松了。我其实想要

[map(sin,data),
 map(cos,data),
 map(tan,data)]

我再次猜测

[map(f,data) for f in [sin, cos, tan]]

是正确的方法。

1 个答案:

答案 0 :(得分:0)

如果你想坚持使用地图,你将需要一个辅助功能,例如

map(lambda f: f(data), [sin, cos, tan])