Skip to main content
 首页 » 编程设计

python之涉及列表和索引的基本 Python 练习出现问题

2025年05月04日17me-sa

正在做 CheckIO 练习,但卡在了这里。我需要设计一个函数,它会找到具有偶数索引(第 0、2、4...)的元素的总和,然后将这个求和的数字与数组的最后一个元素相乘。输入是一个数组,输出是一个数字。哦,对于空数组,结果必须为零。

def checkio(array): 
    sum = 0 
    if len(array) == 0:  
        return 0 
    else: 
        for i in array:     
            if array.index(i) % 2 == 0:  
                sum = sum + i 
        final = sum*(array[len(array)-1]) 
    return final 

例如,数组 [-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55, -24,84,49,-65,41],这个函数在它应该给出 1968 时返回 -1476。

请您参考如下方法:

据我所知,问题在于您假设数组中的所有数字都是唯一的。例如,假设我有以下数组:

[0,33,33,22,22] 

显然,在此数组中,您需要第 3 个和第 5 个元素(索引 2 和 4)。

然而,使用您当前的代码,这永远不会发生,您最终的总和将为 0。这是因为代码:

array.index(i) 

找到匹配i的第一个元素,这将是第2个和第4个元素(索引1和3),它们是奇数索引,因此不会被添加。