我需要帮助来创建函数 sumOfPositiveNumbers(li)。返回列表中所有正整数之和的函数,该函数应使用 while 循环。
问问题
2185 次
2 回答
5
def sumOfPositiveNumbers(li):
while True:
return sum(i for i in li if i > 0)
虽然我更喜欢以下函数,因为它不使用 sum,而是仅使用 lambda 表达式
def sumOfPositiveNumbers(li):
while True:
return ((lambda f: (lambda x: x(x))
(lambda y: f(lambda a: y(y)(a))))
(lambda f: lambda a: len(a) and
(a[0] > 0) * a[0] + f(a[1:])))(li)
于 2013-08-17T15:35:39.083 回答
0
我做了一个非常简单的while循环,就像你问的那样:
def sumOfPositiveNumbers(li):
total = 0
index = 0
while index < len(li):
num = li[index]
if num > 0:
total += li[index]
index += 1
return total
但我必须说,这项工作可以像这样做得更好:
def sumOfPositiveNumbers(li):
return sum(x for x in li if x > 0)
除非你必须使用一个 while 循环,否则使用一个是没有意义的。除了浪费更多的打字/时间之外,它真的什么也没做。
于 2013-08-17T15:38:34.117 回答