问题遇到的现象和发生背景
试着编一个程序,但是出现了下标越界
问题相关代码
vis=[]
coordinate_final3=[]
for i in range(2501):
vis.append([])
for j in range(2501):
vis[i].append(0)
center=[]
for i in range(2501):
center.append([])
for j in range(2501):
center[i].append(0)
data = pd.read_csv("数据.csv")
x=data['x'].tolist()
y=data['y'].tolist()
center=[]
m=len(x)
for i in range(m):
vis[x[i]][y[i]]=1
for i in range(m):
n=0
cache=[]
minlength=x[i]-30
if minlength<0:
minlength=0
maxlength=x[i]+30
if maxlength>2500:
maxlength=2500
minhigh=y[i]-30
if minhigh<0:
minhigh=0
maxhigh=x[i]+30
if maxhigh>2500:
maxhigh=2500
for i1 in range(minlength,maxlength):
for i2 in range(minhigh,maxhigh):
if vis[i1][i2]==1 and center[i1][i2]!=2 and center[i1][i2]!=3:
n=n+1
cache.append([i1,i2])
if n<10:
center[x[i]][y[i]]=1
if n>10:
for i3 in range(n):
center[cache[i][0]][cache[i][1]]=2
center[x[i]][y[i]]=3
x_last=[]
y_last=[]
location=[]
for i in range(2500):
for j in range(2500):
if center[i][j]!=0:
x_last.append(i)
y_last.append(j)
location.append(center[i][j])
outdata = {'x': x_last, 'y': y_last,'group':location}
df = DataFrame(outdata)
df.to_csv('基站的选择结果.csv')
运行结果及报错内容
Traceback (most recent call last):
center[x[i]][y[i]]=1
IndexError: list index out of range
我的解答思路和尝试过的方法
list index out of range应该是两种情况吧,一种是列表为空,这个应该是不可能的,还有一个就是下标越界。
下标越界试着检查了一下,在错误行数的地方加上了center[2500][2500]=1进行验证发现还是下标越界,但是放到交互式里面就没有问题。
我想要达到的结果
让代码正常运行