Python报错及解决:IndexError: list index out of range

Python报错及解决:IndexError: list index out of range

报错解释

该报错是由于超出list范围导致

解决方式

  1. 索引前先查询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范围
  1. 多个判断条件是先定义好边界情况再进入其他情况
  • 下图 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
  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值