Python 3.x python3中函数的调用列表

Python 3.x python3中函数的调用列表,python-3.x,Python 3.x,以下内容在python2中用于调用存储在函数列表中的函数对象列表: for f in functions: map(f, data) python3的等价物是什么,因为上面的内容在python3中似乎不起作用,它返回一个迭代器,这就是为什么只调用它时什么也不会发生 因为您显然不关心返回的值,所以我认为最好使用显式循环: for f in functions: for d in data: f(d) 如果您确实将结果存储在Python2中: for f in fu

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

for f in functions:
    map(f, data)
python3的等价物是什么,因为上面的内容在python3中似乎不起作用,它返回一个迭代器,这就是为什么只调用它时什么也不会发生

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

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))

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

您可以使用嵌套列表:

[[f(d) for d in data] for f in functions]
或者仅评估地图对象,例如,将其转换为列表:

list(map(f, data))

因为你的建议太糟糕了。你是在建议创建一个嵌套的“无”列表,并立即将其删除。@BlaXpirit这有多可怕?首先,这正是mapf,data在python2中所做的,如果除了外部列表之外不使用返回值。其次,所需的内存非常小