我在python中编写了以下函数,该函数返回一个子列表(即,它一直进行遍历的列表部分,直到找到一个特定值(在我的情况下为5)而不将其包括在子列表中,并且也停止了进一步迭代) 。
def sublist(a):
b=[]
i=0
while(a[i]!=5 and i<=len(a)-1):
b.append(a[i])
i=i+1
return b
上面的功能在除此a=[1, 6, 2, 3, 9]
之外的所有测试用例中都可以正常工作。它给出了以下错误:IndexError: list index out of range
。
但是当我互换while循环条件的操作数并以以下方式编写相同的代码时,我得到了所有测试用例的输出:
def sublist(a):
b=[]
i=0
while(i<=len(a)-1 and a[i]!=5):
b.append(a[i])
i=i+1
return b
为什么在第一种情况下我没有得到输出?
sublist
调用a=[1, 6, 2, 3, 9]
时,while循环中的i在4之后进一步增加,成为i = 5。