【问题标题】:List index out of range, Does anyone know?列表索引超出范围,有人知道吗?
【发布时间】:2015-08-16 08:48:21
【问题描述】:

我正在处理文件 tabel.txt,但遇到了麻烦。我想显示第四列的数据,但我得到了

error: list index out of range

谁能帮我解决这个问题

f = open("tabel.txt", 'r') 

for line in f:

a=line.split("\t")    
    print(a[3])    

【问题讨论】:

  • 其中一行没有 3 列,因此引发异常。我敢打赌这是最后一个只有换行符的。多田!
  • 您是按制表符拆分的,所以可能没有 3 列?无论如何,第三列将是 a[2]。
  • @ElmoVanKielmo 这是他缺少的第 4 列...
  • @OBP 你当然是对的:D

标签: python list indexing range out


【解决方案1】:

你可以这样做:

f = open("tabel.txt", 'r') 
for line in f:
    a=line.split("\t")  
    if len(a)>3:  
        print(a[3])    
    else:
        print a

这样你就可以看到这一行的问题所在。 正如其中一个 cmets 所说,99% 这是最后一行。

【讨论】:

  • @karlfel 如果这是您要找的,请随时接受... :)
【解决方案2】:

如前所述 - 您很可能在某些时候遗漏了第 4 列。如果您不确定自己的数据,这里的良好做法是使用try..except

f = open("tabel.txt", 'r') 
i = 0
for line in f:

    a=line.split("\t")   
    try: 
        print(a[3]) 
    except IndexError:
        print("Empty field at line %s" % str(i))    
    i += 1

【讨论】:

  • 这是他丢失的第 4 列
  • 谢谢,真相大白:D
猜你喜欢
  • 2014-06-19
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 2011-06-14
  • 2016-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多