Use lambda expression to count the elements that I'm interested in Python
Note: "more than" is >
... =>
is not a valid operator.
Try sum(y > 2 for y in x)
Or, as suggested by @Jochen, to guard against non-conventional nth-party classes, use this:
sum(1 for y in x if y > 2)
You can try any of the following
len([y for y in x if y > 2])
or
len(filter(lambda y: y > 2, x))
or the nicer
sum( y > 2 for y in x )
from functools import reduce
x = [1,2,3]
reduce(lambda a,i: a+1 if (i>2) else a, x, 0)
This will not create a new list. a
is the accumulator variable, i
is the item from the list, and the 0
at the end is the initial value of the accumulator.