首页 > Python资料 博客日记

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

2024-03-23 08:00:05Python资料围观35

Python资料网推荐Python报错及解决:IndexError: list index out of range这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

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

版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐