遇到一个问题列表有元素且未超出下标访问显示IndexError: list index out of range
以上是一个归并排序函数
values列表有随机5个元素
调用mergesort函数进行排序
报错提示第19行 if first[ifirst] < second[isecond]: IndexError: list index out of range
first[0]应该没有超出下标范围才对,也是空列表
初学者请教,请问这是什么原因
大概看了一下,确定是first[0]造成的索引越界吗?
我感觉是 while ifirst < len(values) and isecond < len(values): 这个循环中,你的 ifirst 索引一直在增大,当它小于 len(values) 并且大于 first 列表本身的长度,first[ ifirst ]就会索引越界了, isecond 索引同理
你可以把变量打印出来看一看有没有什么问题,调试也可以
空列表是没有任何元素的,[0]代表第一个元素,而空列表没有任何元素,因此报错