我想使用for
循环遍历数字列表,并在到达4
之类的特定数字时停止,返回之前的数字之和。
因此,如果列表为[1, 2, 4, 0, 3, 2]
,则求和后该函数将返回3
。
答案 0 :(得分:1)
有两种使用for
循环的方式( with 和 without 函数)。当元素为if
时,for
条件将脱离4
循环,否则它将继续求和。从for
循环中出来,您可以打印总和s
无功能
lst = [1, 2, 4, 0, 3, 2]
s = 0
for l in lst:
if l == 4:
break
s += l
print ("The sum is %d" %s)
> The sum is 3
具有功能
lst = [1, 2, 4, 0, 3, 2]
num = 4
def summ(lst, num):
s = 0
for l in lst:
if l == num:
return s
s += l
print ("The sum is %d" %summ(lst, num))
> The sum is 3
答案 1 :(得分:1)
您可以使用itertools.takewhile
:
from itertools import takewhile
res = sum(takewhile(lambda x: x < 4, [1, 2, 4, 0, 3, 2])) # 3
docs for itertools.takewhile
提供了等效生成器,可用于直接实现逻辑:
def takewhile(predicate, iterable):
# takewhile(lambda x: x < 4, [1, 2, 4, 0, 3, 2]) --> 1 2
for x in iterable:
if predicate(x):
yield x
else:
break