索引错误:元组索引超出范围!!不明白为什么会发生此错误



我收到索引错误:元组索引在运行以下代码时超出范围:

for filename in os.listdir(slice_path):
if filename.endswith('.txt') is False:
continue
print(filename)
filepath = os.path.join(slice_path,filename)
f = open(filepath,'r')
slicelists = f.read().split('------------------------------')
f.close()
labelpath = os.path.join(label_path,filename[:-4]+'.pkl')
#print(labelpath)
f = open(labelpath,'rb')
labellists = pickle.load(f)
f.close()
if slicelists[0] == '':
del slicelists[0]
if slicelists[-1] == '' or slicelists[-1] == 'n' or slicelists[-1] == 'rn':
del slicelists[-1]
#print(slicelists)
file_path = os.path.join(folder_path,filename)
f = open(file_path,'a+')
index = 1
for slicelist in slicelists:
index += 1
sentences = slicelist.split('n')
if sentences[0] == 'r' or sentences[0] == '':
del sentences[0]
if sentences == []:
continue
if sentences[-1] == '':
del sentences[-1]
if sentences[-1] == 'r':
del sentences[-1]
labellist = labellists[index]
#print(labellist)
for labels in labellist:
#print(labels)
if labels == 1:
label = 1
else:
label = 0
for sentence in sentences:
f.write(str(sentence)+'n')
f.write(str(label)+'n')
f.write('------------------------------'+'n')
f.close()
print('success!')

他们在终端上指示的错误如下:

pointersuse_slices.txt
Traceback (most recent call last):
File "data_preprocess.py", line 44, in <module>
labellist = labellists[index]
IndexError: tuple index out of range

谁能解释为什么我会收到此错误?我正在尝试将我的数据集标记为 1 或 0。当我从labellist = labellists[index]中删除index时,它没有正确标记。

您从第 1 点开始索引:

index = 1
for slicelist in slicelists:
index += 1
...

索引起点是0,因此您可能会收到此错误。

最新更新