为什么我不能访问列表元素

时间:2012-09-10 20:44:21

标签: python list

我正在尝试从令牌变量访问列表元素,但我继续收到错误

 print token[0]
IndexError: list index out of range'

当我尝试从令牌列表中访问元素时。

文件rebase文件的内容是:

ZraI       3 GAC'GTC        0 !  AatII                            >INV 
;ZrmI      3 AGT'ACT        0 !  ScaI,AssI,BmcAI                   >I

,代码是:

 with open (rebase_file, 'r') as rebase:
     lines = rebase.readlines()
     string  = ''
     for line in lines:
         token = line.split()
         print token[0]

3 个答案:

答案 0 :(得分:6)

您遇到一个空行:

>>> ''.split()[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

只需使用if line.strip():

进行测试
with open (rebase_file, 'r') as rebase:
    for line in rebase:
        if line.strip():
            token = line.split()
            print token[0]

请注意,我直接循环遍历文件,而不是一次性将其全部读入内存。

答案 1 :(得分:2)

你可能有一个空行,检查一下。

答案 2 :(得分:1)

看起来这行符合python docs中的描述:

将空字符串或仅包含空格的字符串拆分为无分隔符返回[]

表示令牌是一个空数组,令牌[0]超出范围。