Python 2.7将lambda语句转换为list comprehension

时间:2016-11-08 03:27:06

标签: python lambda list-comprehension

我正在检查用python编写的代码,但我对以下行感到困惑。

return ( reduce(lambda x, y: x + y[0],myList, 0)/len(Actions), )

此代码将x和y作为输入求和x和y的第一个元素。之后我认为它将myList减少到x + y [0]的值。如何使用列表推导而不是使用lambda来实现这一点。

1 个答案:

答案 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)