#Check if each element in input list is at least as big as the one before it.
inputList = [9,10,11,12,13]
flag=0
j = 1
i = 0
for i in range(len(inputList)):
if inputList[i] < inputList[j] :
flag=0
elif inputList[i] > inputList[j] :
flag=1
else:
flag=1
print("Unexpected Error!!")
if j < len(inputList):
j=j+1
else:
j=j
if flag == 1 :
print("Condition Failed")
else:
print("Condition Passed")
我正在尝试从for循环访问列表的索引,但是它给了我索引错误。
我尝试手动打印索引,但它却可以正常工作
Traceback (most recent call last):
File "prac3.py", line 13, in <module>
if inputList[i] < inputList[j] :
IndexError: list index out of range
答案 0 :(得分:2)
j
总是比i
大1,因此,当i
是最后一个元素的索引时,j
超出范围-因此出错。 / p>
答案 1 :(得分:1)
因此,在对@ekhumoro的答案进行一段时间后,我找到了解决方法。
res = all(b > a for a, b in zip(x, x[1:]))
if res == true:
print("")
答案 2 :(得分:0)
尝试一下,
#Check if each element in input list is at least as big as the one before it.
inputList = [9,10,11,12,13]
flag=0
j = 1
i = 0
for i in range(len(inputList)):
if inputList[i] < inputList[j] :
flag=0
elif inputList[i] > inputList[j] :
flag=1
else:
flag=1
print("Unexpected Error!!")
j=j+1 if j < len(inputList) else j=j
if flag == 1 :
print("Condition Failed")
else:
print("Condition Passed")
为了避免该错误,我仅更改了一行。您知道更好的逻辑来实现自己的算法。
j=j+1 if j < len(inputList) else j=j