使用lambda表达式来计算我对Python感兴趣的元素

时间:2011-09-26 00:16:02

标签: python lambda

我可以使用lambda表达式来计算我感兴趣的元素吗? 例如,当我需要计算列表中超过两个的元素时,我尝试了这个返回0的代码。

x = [1,2,3]
x.count(lambda x: x > 2)

3 个答案:

答案 0 :(得分:25)

注意:“超过”是> ... =>不是有效的运算符。

尝试sum(y > 2 for y in x)

或者,正如@Jochen所建议的那样,要防范非传统的第n方课程,请使用:

sum(1 for y in x if y > 2)

答案 1 :(得分:12)

您可以尝试以下任何一种

len([y for y in x if y > 2])

len(filter(lambda y: y > 2, x))

或更好

sum( y > 2 for y in x )

答案 2 :(得分:0)

x = [1,2,3]
reduce(lambda a,i: a+1 if (i>2) else a, x, 0)

这不会创建新列表。 a是累加器变量,i是列表中的项,末尾的0是累加器的初始值。