以下在python2中用于调用存储在函数列表中的函数对象列表:
for f in functions:
map(f, data)
python3的等价物是什么,因为上面似乎不起作用
答案 0 :(得分:1)
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))