Python列表有大小,但无法访问元素

时间:2014-10-22 06:19:00

标签: python list indexing

我构建了一些代码来剔除文件中的数据,将每一行拆分为三个块,并将这三个块作为列表输出:

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,它总是失败。

我绝对难过!有什么我误解的吗?

感谢。

1 个答案:

答案 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