我构建了一些代码来剔除文件中的数据,将每一行拆分为三个块,并将这三个块作为列表输出:
def n1gramSep(fileLine):
output = []
stringBuffer = ""
for char in fileLine:
if char not in "!\"$.%&\'abcdefghijklmnopqrstuvwxyz01234567890":
if stringBuffer != "":
output.append(stringBuffer)
stringBuffer = ""
else:
stringBuffer += char
return output
它有效!但是,在稍后的函数中,当我尝试将列表的某些元素分配给某些变量时,我不断得到IndexError:list index超出范围。
但这很奇怪 - 因为当我要求程序打印列表的内容时,我清楚地得到了我期望的结果:例如:['9.99', 'dog', '5.25]
。然后,当我还检查每个列表的长度时,我也得到预期值3。
然而每当我尝试时
nInfo.append(n1gramInfo[x])
其中x为0,1或2,它总是失败。
我绝对难过!有什么我误解的吗?
感谢。
答案 0 :(得分:0)
可能文件中有一行导致问题。最后通常有一个空行,例如
您可以尝试这样的事情来隔离您的问题
try:
nInfo.append(n1gramInfo[x])
except IndexError:
print(n1gramInfo, x)
import pdb;pdb.set_trace() # optional, but a good time to learn the debugger