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)
您能帮忙解释一下错误并提出修复建议吗?
那是因为append()
不返回任何东西。
你可以做:
functools.reduce(lambda x, y: x + [y], [1,2,3], [])
Run Code Online (Sandbox Code Playgroud)