我不停地使用列表获取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行)我得到正确的输出但是当我尝试时打印整个列表。欢迎任何欢迎。
由于
答案 0 :(得分: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)))