为什么总提示超出范围啊:(
输出各项值如下:
numcode1list= [120, 181, 120, 140, 181, 120, 140, 120, 183, 153, 153, 206, 153, 112, 153, 166, 153, 105, 153, 168, 153, 187, 153, 183, 206, 112, 206, 153, 112, 206, 112, 145, 112, 153, 145, 112, 166, 153, 166, 57, 54, 76, 76, 210, 76, 203, 203, 76, 168, 153, 101, 29, 183, 153, 153, 112, 153, 183, 153, 183, 112, 206, 153, 166]
len(numcode1list)= 64 ,
max(numcode1list)= 210
dilist=[0]*max(numcode1list)#生成全零列表,对应D中的对角线元素
for uv in range(len(numcode1list)):
dilist[int(numcode1list[uv])]+=1
print('dilist=',dilist)
Traceback (most recent call last):
File "C:\Users\10098\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2961, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-94f7ccde9956>", line 1, in <module>
runfile('E:/.../test.py', wdir='E:/...')
File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.4\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.4\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "E:/.../test.py", line 24, in <module>
dilist[int(numcode1list[uv])]+=1
IndexError: list index out of range
numcode1list中第一项是120,则列表dilist[120]加1,以此类推
dilist=[0]*max(numcode1list)
改成 dilist=[0]*(max(numcode1list)+1)
dilist 长度是210 下标是 0 - 209
按你的程序会有一个 numcode1list[uv] = 210 而 dilist[210] 不存在
举个例子 dlist = [0]*64 生成长度为64 的数组, 但它的下标是 0 - 63
你要引用 dlist[63] 是存在的, 但 dlist[64] 就会越界了。