gpt4 book ai didi

python - 根据特定值删除List中的索引

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:06 27 4
gpt4 key购买 nike

我正在尝试解决以下问题:

返回数组中数字的总和,对于空数组返回 0。除了数字 13 非常不吉利,所以它不算数,紧跟在 13 之后的数字也不算数。

这就是我的想法,这里的想法是删除 13 和 1(紧随其后),然后将剩余的数字相加。我遇到的问题是删除部分,它实际上并没有删除任何东西。这是语法问题吗?

x = [1,2,2,1,13,1]

def sum13(nums):
for i in nums:
if i == 13:
del nums[i:i+1]
return sum(nums)

print(sum13(x))

20 <-- should be 6

最佳答案

你的问题是你的索引。 i 是列表中的数字,不是索引。这是解决您的问题的方法:

x = [1,2,2,1,13,1]

def sum13(nums):
for i, num in enumerate(nums):
if num == 13:
del nums[i:i+2] # This removes the index i and the index i+1
return sum(nums)

print(sum13(x))
>>> 6

编辑:正如 Thierry Lathuille 在评论中提到的那样,这并不能充分说明您重复 '13' 的情况。假设您想要这种行为,可以通过以下方式实现:

def sum13(nums):
for i, num in enumerate(nums):
if num == 13:
stop_cut = i + 1
while nums[stop_cut] == 13:
stop_cut += 1
del nums[i:stop_cut+1]
return sum(nums)

关于python - 根据特定值删除List中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53507584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com