我无法从列表中查找使用sum的信息。我知道如何使用sum与范围,例如:
sum = 0
for i in range(50):
sum=sum + i
print (sum)
但是,当我使用[1, 2, 6, 7, 8, 10]
等列表并使用sum
取偶数时,我无法使用我的代码。有人能指出我正确的方向吗?
答案 0 :(得分:4)
你可以filter
输出奇数值:
def is_even(x):
# if the remainder (modulo) is 0 then it's evenly divisible by 2 => even
return x % 2 == 0
def sum_of_evens(it):
return sum(filter(is_even, it))
>>> sum_of_evens([1,2,3,4,5])
6
或者如果您更喜欢条件生成器表达式:
>>> lst = [1,2,3,4,5]
>>> sum(item for item in lst if item % 2 == 0)
6
或显式(长)方法:
lst = [1,2,3,4,5]
sum_ = 0
for item in lst:
if item % 2 == 0:
sum_ += item
print(sum_) # 6