python函数在数组中查找正数和

2024-09-28 23:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要编写一个函数,它接受一个数字数组,并找到所有数字的最大和。换句话说,我需要找到正数的和。我写了这个,我得到“列表超出范围”

有什么想法?

    def maximum_sub(A):
        x = 0
        i = 0
        for i in A:
            while A[i] > 0:
            x+=A[i]
            i+=1
        return x

Tags: 函数in列表forreturndef数字数组
2条回答

有更好的求和和和理解方法,但我假设您正在编写一个函数作为算法练习。

你不需要while循环。使用if检查它是否为正,并将其添加到和中。否则,什么都不要做。for循环将自动迭代您的值。

def maximum_sum(A):
    x = 0
    for i in A:
        if i > 0:
            x += i
    return x

几句忠告:用表达的方式命名事物。我可以用以下几个名字:

def maximum_sum(arr):
    max_sum = 0
    for num in arr:
        if num > 0:
            max_sum += num
    return max_sum

使用超级函数和列表理解代替:

>>> a = [1, 2, 3, -4, 5, -3, 7, 8, 9, 6, 4, -7]
>>> sum(x for x in a if x > 0)
45

[x for x in a if x > 0]将创建由a中的正值组成的数组。

sum(...)将返回该数组中元素的总和。

相关问题 更多 >