如何在Python中的while循环中修复此错误?

drz*_*bir 1 python

我在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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: IndexError: string index out of range

如何解决这个错误?

Bri*_*ien 10

您需要通过长度检查开始您的while条件.Python 会使你的while循环中的操作短路,所以当j它太大时,它只会抛出错误而不是优雅地结束循环.像这样:

while j < len(list1) and list1[j] >= list1[j - 1]:
Run Code Online (Sandbox Code Playgroud)

你的循环的第一次迭代比较list1[0]list1[-1],这是有效的,但可能不是你想要做的(它的第一个和最后一个元素的相比较list1).根据您的目标,您可能希望也可能不希望开始循环j = 1.