2016-07-29 76 views
-5
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将第n发生。那么问题是什么?蟒蛇二维数组列表索引超出范围

+0

你让你的'i'和'j'指数混合起来。 – Julien

回答

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]]

因此,无论ij都是围绕错误的方式或者你:

[[0 for x in range(5)] for y in range(2)] 

不给你你所期望的。

0
text=[[0 for x in range(5)]for y in range(2)] 

等于

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 

所以你的列表里面,你有2列出了具有5种元素各一个。

然后看看这个行:

text[i][j]=link.string 

i - 是中元素的个数可变text(必须2)

j - 在每个列表中的元素的数目(你有5种元素)

它看起来像你有混合ij

相关问题