我一直收到错误 "String Index out of range" 我已确保该数组具有足够的索引。任何人都可以看到问题吗?
I keep getting the error "String Index out of range" I have made sure that the array has enough indices. Can anyone see the problem?
这是代码。谁能发现错误?
file = open("WSJ_02-21.pos-chunk", 'r')
lines = file.readlines()
input_list = [[0 for j in range(5)] for i in range(len(lines))]
for i in range(len(input_list)):
input_line = lines[i].split("\t")
if len(input_line) == 0:
for j in range(len(input_list[i])):
input_list[i][j] = ""
elif len(input_line) == 3:
for j in range(len(input_list[i])):
input_list[i][j] = input_line[i][j]
这里是错误
Traceback (most recent call last):
File "C:/Users/inigo/PycharmProjects/NLPHW5/main.py", line 12, in <module>
input_list[i][j] = input_line[i][j]
IndexError: string index out of range
我的预期输出是一个包含元素 WSJ_02-21.pos-chunk
的二维列表
link 到输入文件
[https://drive.google.com/file/d/1QLMfD9HhvshhqE7XqIn96ML-M0j2uNLh/view?usp=sharing]
如果你传递的行是这样的:
lines = ["avd\tbdc\tcdc"]
您的 input_line
将有 3 个标记(因此将在 elif
中结束)但是您的 input_list[i]
将超过 5 个(您在每行中强加的默认长度) input_list
) 你最终会超出范围
input_list[i][j] = input_line[i][j]
IndexError: string index out of range
这段代码的目的并不完全清楚,但如果我理解正确的话,下面的代码似乎就是您要实现的目标:
with open("WSJ_02-21.pos-chunk", 'r') as f:
input_list = []
for line in f:
input_line = line.strip().split('\t')
if len(input_line) == 0:
input_list.append([''])
elif len(input_line) == 3:
input_list.append(input_line)
但是 -- 您真的想要空行条目吗?
如果没有,下面的可能会更好:
with open("WSJ_02-21.pos-chunk", 'r') as f:
input_list = []
for line in f:
input_line = line.strip()
if len(input_line) > 0:
input_list.append(input_line.split('\t'))
这是代码。谁能发现错误?
file = open("WSJ_02-21.pos-chunk", 'r')
lines = file.readlines()
input_list = [[0 for j in range(5)] for i in range(len(lines))]
for i in range(len(input_list)):
input_line = lines[i].split("\t")
if len(input_line) == 0:
for j in range(len(input_list[i])):
input_list[i][j] = ""
elif len(input_line) == 3:
for j in range(len(input_list[i])):
input_list[i][j] = input_line[i][j]
这里是错误
Traceback (most recent call last):
File "C:/Users/inigo/PycharmProjects/NLPHW5/main.py", line 12, in <module>
input_list[i][j] = input_line[i][j]
IndexError: string index out of range
我的预期输出是一个包含元素 WSJ_02-21.pos-chunk
的二维列表link 到输入文件 [https://drive.google.com/file/d/1QLMfD9HhvshhqE7XqIn96ML-M0j2uNLh/view?usp=sharing]
如果你传递的行是这样的:
lines = ["avd\tbdc\tcdc"]
您的 input_line
将有 3 个标记(因此将在 elif
中结束)但是您的 input_list[i]
将超过 5 个(您在每行中强加的默认长度) input_list
) 你最终会超出范围
input_list[i][j] = input_line[i][j]
IndexError: string index out of range
这段代码的目的并不完全清楚,但如果我理解正确的话,下面的代码似乎就是您要实现的目标:
with open("WSJ_02-21.pos-chunk", 'r') as f:
input_list = []
for line in f:
input_line = line.strip().split('\t')
if len(input_line) == 0:
input_list.append([''])
elif len(input_line) == 3:
input_list.append(input_line)
但是 -- 您真的想要空行条目吗?
如果没有,下面的可能会更好:
with open("WSJ_02-21.pos-chunk", 'r') as f:
input_list = []
for line in f:
input_line = line.strip()
if len(input_line) > 0:
input_list.append(input_line.split('\t'))