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

你可能感兴趣的:(报错及解决,python)