【问题标题】:List index out of range error for python constant size listpython常量大小列表的列表索引超出范围错误
【发布时间】:2014-06-30 21:21:36
【问题描述】:

我正在尝试从 txt 文件中读取一定数量的行并将每行的一些单词拆分存储到变量中。但是,我不断收到索引超出范围错误,我不明白为什么。

代码如下:

for i in range(230218):
    count=i+1
    if count != coordinate:
            writefile.write(str(count)+"0")
    else:
            writefile.write(str(count)+coverage)
            lineread=f.readline()
            x=lineread.split()
            coordinate=int(x[1])
            coverage=x[3]

并且错误说 tat 坐标和覆盖范围是超出范围的。

edit:我认为问题在于输入文件太大,因此根本没有为 x 生成列表。当我在另一台机器上运行它时,问题自行解决了。

【问题讨论】:

  • edit您的问题并提供回溯的全文
  • 与您的问题无关,但230218 是一个相当大的数字。您可能希望在 Python 2 中使用 xrange 以获得更好的性能和更少的内存使用。
  • 如果你使用python xrange,它是一个序列对象,它的评估是惰性的。你知道你可以这样做range(1, 230219)这将避免count = i + 1跨度>

标签: python


【解决方案1】:

使用len(x) 可能会得到没有空格的行,所以split() 给你一个x 中的元素,而x[1] 不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-06
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多