【问题标题】:Python functools.reduce, how to reduce a list a return a new onePython functools.reduce,如何减少列表并返回一个新列表
【发布时间】:2017-11-10 15:02:00
【问题描述】:

回答一个问题时,我注意到我不知道如何在 reduce 中执行 append 后返回列表,例如

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 res, future: res+[str(future)] 怎么样?
  • @Rawing 我认为是这样!为什么评论而不是答案?如果你把它作为答案,我会很乐意接受

标签: python lambda reduce fold


【解决方案1】:

您不必改变 lambda 中的结果列表; reduce 以函数的返回值 作为结果。所以你的 lambda 可以很简单

lambda res, future: res+[str(future)]

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多