我在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.