Python报错及解决:IndexError: list index out of range
短信预约 -IT技能 免费直播动态提醒
Python报错及解决:IndexError: list index out of range
报错解释
该报错是由于超出list范围导致
解决方式
- 索引前先查询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://blog.csdn.net/HHVicky/article/details/129122419
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341