我需要编写一个函数,它接受一个数字数组并找到所有数字的最大和。换句话说,我需要找到正数的总和。我写了这个,我得到“列表超出范围”
想法?
def maximum_sub(A):
x = 0
i = 0
for i in A:
while A[i] > 0:
x+=A[i]
i+=1
return x
Run Code Online (Sandbox Code Playgroud)
改用超级函数和列表理解:
>>> a = [1, 2, 3, -4, 5, -3, 7, 8, 9, 6, 4, -7]
>>> sum(x for x in a if x > 0)
45
Run Code Online (Sandbox Code Playgroud)
[x for x in a if x > 0]将创建一个由 中的正值组成的数组a。
sum(...) 将返回该数组中元素的总和。