使用functools.reduce

问题描述

运行此代码时出现属性错误。为什么在下一次迭代中不返回result.append(item)?

from functools import reduce

def reducer(arr):

  return reduce((lambda result,item: result.append(item)),arr,[])

print(reducer([[1,3],[2,4]]))

解决方法

list.append不返回列表。您可以使用list1 + list2来扩展list1中所有元素的list2,所以下面的工作将起作用。

def reducer(arr):
    return reduce((lambda result,item: result + item),arr,[])