使用for循环将两个变量一起迭代

时间:2015-04-24 14:50:20

标签: python for-loop numpy increment

我该如何做这样的事情?

假设我有x = np.array([1,2,3,4,5])的数组length 5

for i,j in range(len(x)):

我希望ij一起增加。

这给我一个错误信息:

TypeError                                 Traceback (most recent call last)
<ipython-input-4-37d0ddc3decf> in <module>()
----> 1 for i,j in range(len(x)):
      2     print i,j
      3 

TypeError: only length-1 arrays can be converted to Python scalars

我需要这个的原因是因为我必须在for循环中使用它。比如说y[i][j],我想要0,0然后是1,1,依此类推。

3 个答案:

答案 0 :(得分:4)

为什么首先需要j?如果j始终等于i,请使用i。不需要第二个变量。

答案 1 :(得分:2)

已编辑的回答

OP说

  

我需要这个的原因是因为我必须在for循环中使用它。比方说,y [i] [j]我希望这是0,0然后1,1等等。

在这种情况下,你可以简单地使用:

y[i][i]

原始回答

我不确定你为什么要这样做,你可以在for循环的第一行设置它:

for i in range(len(x)):
    j = i
    ... #rest of the code follows

您也可以使用enumerate,正如@Julien的评论所指出的那样,如下所示(但IMO,早期方法更好):

>>> for i, j in enumerate(xrange(len(x))):
...     print i, j
... 
0 0
1 1
2 2

答案 2 :(得分:1)

你可以试试这个:

{{1}}

所以问题是关于如何迭代两个变量,而不是为什么; - )