Python 3.x python3中函数的调用列表
以下内容在python2中用于调用存储在函数列表中的函数对象列表: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
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中所做的,如果除了外部列表之外不使用返回值。其次,所需的内存非常小