我该如何做这样的事情?
假设我有x = np.array([1,2,3,4,5])
的数组length 5
,
for i,j in range(len(x)):
我希望i
和j
一起增加。
这给我一个错误信息:
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
,依此类推。
答案 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}}
所以问题是关于如何迭代两个变量,而不是为什么; - )