代码runnig末尾带有“IndexError:list index out of range”

时间:2018-02-26 14:55:12

标签: python list indexing

我运行一个代码,它给出了我想要的结果,但它在结果的末尾显示“IndexError:list index超出范围”。

以下是我所拥有数据的一部分:

AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275678;/app//wakeup;\N
AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275824;/app//connect;ethernet
AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275970;/app//tv_off;\N

这是我的代码:

ligne = data.split("\n")

for i in ligne:

    col = i.split(";")
    print(col[1])

我正在寻找的结果是我得到的代码是:

ZFAMIEM1
ZFAMIEM1
ZFAMIEM1
IndexError                                
Traceback (most recent call last)
  <ipython-input-53-4d9c2e4b9014> in <module>()

  5 for i in ligne:
  6     col = i.split(";")
--> 7     print(col[1])

 IndexError: list index out of range

如果您对如何避免此错误有任何疑问,请帮助我。谢谢!

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。我在分割后使用filter删除任何空列表。

<强> EX:

s = r"""AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275678;/app//wakeup;\n AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275824;/app//connect;ethernet\n AMI;ZFAMIEM1;NBAMI702;DSDOU904;WHD93;SAGEM_WHD93_stbmib_02.29.82;08:3E:5D:5F:7A:42;2018-01-26 12:14:35;1516965275970;/app//tv_off;\n"""
for i in filter(None, s.split(r"\n")):
    col = i.split(";")
    print(col[1])

<强>输出:

ZFAMIEM1
ZFAMIEM1
ZFAMIEM1