我有一个 Python 列表,list1,以及以下 while 循环:
j = 0
while list1[j] >= list1[j - 1] and j < len(list1):
# do something here and return k
# k is always incremented
j += k
我收到以下错误: IndexError:字符串索引超出范围
如何修复这个错误?
请您参考如下方法:
您需要从长度检查开始您的 while 条件。 python short-circuits while 循环中的操作,所以当 j 太大时,它只会抛出一个错误,而不是优雅地结束循环。所以像这样:
while j < len(list1) and list1[j] >= list1[j - 1]:
循环的第一次迭代是比较 list1[0] 和 list1[-1],这是有效,但可能不是做你想做的事(它比较 list1 的第一个和最后一个元素)。根据您的目标,您可能希望也可能不希望以 j = 1 开始循环。
