j=0
i=0
text=[[0 for x in range(5)]for y in range(2)]
while (i<5):
for link in soup.findAll('td'):
if j<2:
text[i][j]=link.string
j+=1
i+=1
问题是我收到错误消息list index out of range
,但我已经设置了if条件,因此如果j
超过3
将会发生。那么问题是什么?
答案 0 :(得分:0)
[[0 for x in range(5)] for y in range(2)]
创建数组[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
您的代码是为一个类似于[[0, 0], [0, 0],[0, 0],[0, 0],[0, 0]]
。
因此i
和j
的方式不对,或者您的:
[[0 for x in range(5)] for y in range(2)]
没有给你你所期望的。
答案 1 :(得分:0)
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
等于
text[i][j]=link.string
因此,在列表中,您有2个列表,每个列表包含5个元素。
然后看看这一行:
i
text
- 变量j
中的元素数量(您有2个)
i
- 每个列表中的元素数量(您有5个元素)
您好像混合了j
和// Show the picture box
pictureBox.Visible = true;
// Hide the picture box
pictureBox.Visible = false;
。