l=[[86,82],[82,79],[80,77],[79,75],[82,80],[89,84],[87,83],[84,81],[83,74],[90,85],[86,81],[83,72]]
for i in range(len(l)): #)假如 数据组的数据,没有满足这个条件,会报错;怎么可以避免?我的目的是如果不满足条件,就不输出)
if l[i+1][1] > min([x[1] for x in l[:i+1]]) and l[i+1][0] > max([x[0] for x in l[:i+1]]):
a=i+1
b=min([x[1] for x in l[:i+1]])
break
for i in range(len(l)):#(假如 数据组的数据,没有满足这个条件,会报错;怎么可以避免?我的目的是如果不满足条件,就不输出)
if l[i+1+a][0] < max([x[0] for x in l[:i+1+a]]) and l[i+1+a][1] < min([x[1] for x in l[:i+1+a]]):
c = i+1+a
d = max([x[0] for x in l[:i+1+a]])
break
for i in range(len(l)):#(假如 数据组的数据,没有满足这个条件,会报错;怎么可以避免?我的目的是如果不满足条件,就不输出)
if l[i+1+c][1] > min([x[1] for x in l[:i+1+c]]) and l[i+1+c][0] > max([x[0] for x in l[:i+1+c]]):
e = i+1+c
f = min([x[1] for x in l[:i+1+c]])
break
for i in range(len(l)):#(假如 数据组的数据,没有满足这个条件,会报错;怎么可以避免?我的目的是如果不满足条件,就不输出)
if l[i+1+e][0] < max([x[0] for x in l[:i+1+e]]) and l[i+1+e][1] < min([x[1] for x in l[:i+1+e]]):
g = i+1+e
h = max([x[0] for x in l[:i+1+e]])
break
if (h-f)*0.585 < (d-b):#(假如 数据组的数据,没有满足这个条件,会报错;怎么可以避免?我的目的是如果不满足条件,就不输出)
print(“ture”)
请问,怎么解决合适呢?
你这报错是数组越界异常吧
try:
<语句>
except:
print('异常说明')
for i in range(len(l)):
try:
if l[i+1][1] > min([x[1] for x in l[:i+1]]) and l[i+1][0] > max([x[0] for x in l[:i+1]]):
a=i+1
b=min([x[1] for x in l[:i+1]])
break
except:
最简单的方法是用try except 捕获报错