调用python3中的函数列表

时间:2012-12-02 10:29:32

标签: python-3.x

以下在python2中用于调用存储在函数列表中的函数对象列表:

for f in functions:
    map(f, data)

python3的等价物是什么,因为上面似乎不起作用

2 个答案:

答案 0 :(得分:1)

Python 3中的

map返回一个迭代器,这就是为什么当你调用它时没有任何反应。

由于您显然不关心返回的值,我认为最好使用显式循环:

for f in functions:
    for d in data:
       f(d)

如果您实际 将结果存储在Python2中:

for f in functions:
    a = map(f, data)

然后您可以将其更改为

for f in functions:
    a = list(map(f, data))

但如果您实际上不需要返回值,我建议不要使用列表。它需要额外的时间和内存来构建它们并立即丢弃它们。

答案 1 :(得分:-1)

您可以使用嵌套列表理解:

[[f(d) for d in data] for f in functions]

或者仅评估地图对象,例如将其转换为列表:

list(map(f, data))