我正在检查用python编写的代码,但我对以下行感到困惑。
return ( reduce(lambda x, y: x + y[0],myList, 0)/len(Actions), )
此代码将x和y作为输入求和x和y的第一个元素。之后我认为它将myList减少到x + y [0]的值。如何使用列表推导而不是使用lambda来实现这一点。
答案 0 :(得分:3)
与列表理解很好地对应的部分是reduce函数对第二个参数y
的作用:
tmp = [ y[0] for y in myList ]
reduce函数然后将此列表一次一个元素与“accumulator”x
组合:
x = 0 # The third argument to reduce
tmp = [ y[0] for y in myList ]
for y in tmp:
x += y
或更简单
x = 0
for y in myList:
x += y[0]
或者,正如您现在已经认识到的那样
sum(y[0] for y in myList)