python - 索引错误,表示索引超出范围
问题描述
我正在尝试返回数组中数字的总和,为空数组返回 0。除了数字 13 和 13 之后的数字之外,它不计算在内。
def sum13(nums):
p = 0
for i in range(len(nums)):
if nums[i] == 13 and nums[i + 1]:
continue
p += nums[i]
return p
当我运行它时,它给了我一个索引错误列表索引我们的范围,我做错了什么?
解决方案
这是你想要的:
def sum13(nums):
p = 0
skip_next = False
for i in range(len(nums)):
if nums[i] == 13:
skip_next = True
continue
if skip_next:
skip_next = False
continue
p += nums[i]
return p
推荐阅读
- r - 如何使用 R 基于相同的行 ID 对值求和?
- javascript - 无法在函数内部设置值
- terraform - 领事服务无法启动
- flutter - 没有定义颜色的问题
- python - 在 python 中制作了一个模具模拟器来改进它?
- angular - Angular 在继续计算之前等待模板更新?
- android - 如何添加根据屏幕保持平台响应的填充?
- dart - (Moor Flutter) 单个实体中的多个关系
- spring-boot - 如何在 KafkaListenerContainerFactory 创建的 KafkaListener 类中添加 Micrometer Timer?
- php - 基于 WooCommerce 中付款方式 ID 的其他电子邮件收件人