Python报错及解决:IndexError: list index out of range
报错解释
该报错是由于超出list范围导致文章来源地址https://www.toymoban.com/news/detail-565966.html
解决方式
- 索引前先查询list范围, 或用if idx in range(len(test_list))判断索引是否在列表list的范围内:
if idx in range(len(test_list)):
print(test_list[idx])
else:
print(f"{idx} exceed list range:{test_list}") # 超出list范围
- 多个判断条件是先定义好边界情况再进入其他情况
- 下图 if 的4个循环中,如果先进行正常判断,再讨论边界,则在前两个if循环中就可能出现IndexError: list index out of range报错,此时调整 if 顺序,先定义好边界就能解决该报错
while a >= 0 or b < n: #只要满足其中一个条件,就可以接着填数;不满足某个条件是因为该组以达到边界
if a < 0: #负数组已达到边界,后续就是正数组往后加
ans.append(nums[b]*nums[b])
b += 1
elif b >= n: #正数组已达到边界,后续就是负数组往后加
ans.append(nums[a]*nums[a])
a -= 1
#需要先把边界情况定义好,否则可能会出现IndexError: list index out of range的报错
elif nums[a]*nums[a] <= nums[b]*nums[b]: #则先将a放入新数组
ans.append(nums[a]*nums[a])
a -= 1
elif nums[a]*nums[a] > nums[b]*nums[b]: #则先将b放入新数组
ans.append(nums[b]*nums[b])
b += 1
return ans
文章来源:https://www.toymoban.com/news/detail-565966.html
到了这里,关于Python报错及解决:IndexError: list index out of range的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!