-2

我不断得到IndexError一个列表。我的代码如下所示:

for x in range(len(MAIN_list[0])):
                   print(x)
                   print(MAIN_list[9][x])
                   print(MAIN_list[10][x])
                   print(MAIN_list[0][x] + "; " + MAIN_list[1][x] + \
                         "; " + MAIN_list[2][x] + "; " + MAIN_list[3][x] + \
                         "; " + MAIN_list[4][x] + "; " + MAIN_list[5][x] + \
                         "; " + MAIN_list[6][x] + "; " + MAIN_list[7][x] + \
                         "; " + MAIN_list[8][x] + "; " + MAIN_list[9][x] + \
                         "; " + MAIN_list[10][x])

现在,输出是:

0
cross
tick
Traceback (most recent call last):
  File "C:\Users\Michele2\Desktop\Arcrate\MyCASH\Python Code\Scraping\Scraping1.3(clean)TEST.py", line 246, in <module>
    "; " + MAIN_list[10][x])
IndexError: list index out of range

我知道对于列表实际长度之外的变量,您通常会收到此错误,但是在这里,当我单独调用它(即输出的第 3 行)时,我得到了正确的输出,但当我尝试打印列表时却没有作为一个整体。任何虽然都会受到欢迎。

谢谢

4

1 回答 1

0

我能看到的唯一一点是,您的清单之一意外地比其他清单短。

您以一种非常奇怪的方式构造了数据——按列而不是按行。

通常,您会有MAIN_list一个行列表(列表或元组)。然后你可以访问MAIN_list[row][column]并以正确的顺序迭代它们。

在您的情况下,情况有所不同。检查的第一点可能是

for x in range(11):
    print(len(MAIN_list[x]))

遍历列并检查它们的长度。也许一个是空的...

顺便说一句,一旦你找到了原因并修复了它,你可能想要简化你的表达:

print("; ".join(MAIN_list[i][x] for i in range(11)))
于 2013-09-05T10:48:47.230 回答