Pythonfunctools.reduce,如何将一个列表减少一个return一个新的
Python functools.reduce, how to reduce a list a return a new one
在回答一个问题时,我注意到我不知道如何在 reduce 中添加后 return 列表,例如
import functools
futures = [1,2,3]
records = functools.reduce((lambda res, future: res if (res.append(str(future)) == None) else res), futures, [])
我想要列表 ['1', '2', '3']
,这只是一个最小的例子,因为我想做的不仅仅是映射值。
如果我把它放在 lambda 中,还有另一种方法吗?
您不必改变 lambda 中的结果列表; reduce
将函数的 return 值 作为结果。所以你的 lambda 可以像
一样简单
lambda res, future: res+[str(future)]
在回答一个问题时,我注意到我不知道如何在 reduce 中添加后 return 列表,例如
import functools
futures = [1,2,3]
records = functools.reduce((lambda res, future: res if (res.append(str(future)) == None) else res), futures, [])
我想要列表 ['1', '2', '3']
,这只是一个最小的例子,因为我想做的不仅仅是映射值。
如果我把它放在 lambda 中,还有另一种方法吗?
您不必改变 lambda 中的结果列表; reduce
将函数的 return 值 作为结果。所以你的 lambda 可以像
lambda res, future: res+[str(future)]