python减少初始化错误

foc*_*ard 0 python reduce functional-programming

我正在尝试以与racket的foldl类似的方式使用python的reduce,但是当我运行以下代码时:

functools.reduce(lambda x, y: x.append(y), [1,2,3], [])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)

您能帮忙解释一下错误并提出修复建议吗?

dur*_*rsk 5

那是因为append()不返回任何东西。

你可以做:

functools.reduce(lambda x, y: x + [y], [1,2,3], [])
Run Code Online (Sandbox Code Playgroud)