python - 在列表中找到 int 后删除索引 - Python

标签 python list indexof

我有一个脚本,可以在给定列表中搜索数字 13。如果找到 13,则需要将其删除,但我还需要删除其后面的索引。我找到了所有 13 并将其删除,但我不确定删除其后的索引的最佳方法。我确实知道我需要先删除 13 之后的索引,因为删除后会发生移位。最后我需要返回所有索引的总和,我已经完成了。

这是我在 Codebat.com 中进行的一项挑战,它不允许导入。

这是我所拥有的:

def sum13(nums):
    #Return 0 for empty lists
    if nums == '':
        return 0

    #Find 13s, remove next index and then index of 13
    while(True):
        if 13 in nums:
            #remove the index after 13 here
            nums.remove(13)         
        else:
            break

    #Return the sum of all indices.  
    else:
        return sum(nums)

输入是整数的随机列表,例如:

sum13([13, 1, 2, 13, 2, 1, 13]) # Expected Outcome: 3
sum13([1, 2, 13, 2, 1, 13])     # Expected Outcome: 4

为了获得下一个索引,我在 for 循环中尝试了 nums.index(i+1) 的变体,这只会产生错误,并且一直在尝试列表理解和枚举,但我并不是 100%那些还没有。

最佳答案

如果您尝试索引过去的列表长度,您将收到错误,但是可以通过向列表添加额外的元素来避免这种情况(在您的情况下它可以为零,因为您在所有元素的总和之后):

def sum13(nums):
    nums += [0]
    for i in range(len(nums) - 1):
        if nums[i] == 13:
            nums[i] = 0
            nums[i + 1] = 0
    return sum(nums)

如果您想连续计算多个 13,请按相反顺序执行:

    for i in reversed(range(len(nums) - 1)):

关于python - 在列表中找到 int 后删除索引 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787619/

相关文章:

python - 在 python 中打印 2个列表

python - 如何自动执行.py文件

python - 如何创建一个字符串列表,其中只有最后一个元素不同

javascript - node.js 如何在字符串中搜索数组中的值

java - 多维数组列表 indexOf?

python - 试图自学 python,卡在本书的一章中,非常简单的问题

python - Python 的 'in' 列表运算符是否具有成功搜索的早期输出

r - R 列表是广义向量吗?

java - 如何使用 Java 中的 indexOf 找到字符串中的第二个空格字符?

python - 如何将列表中的每个元素分配给单独的变量?