我想写一个这样的forloop:
def loop_in_loop():
for i in range(20):
for j in range(10):
print (i, j)
我希望当我运行这个循环时,看到这样的结果:
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 0
11 1
12 2
13 2
但是给我这个结果:
0 0
0 1
0 2
0 3
0 4
0 5
0 6
1 0
1 1
1 2
1 3
1 4
1 5
1 6
2 0
2 1
2 2
2 3
我该如何解决这个问题?
答案 0 :(得分:0)
让我们考虑一下这里发生了什么。 你有两个循环,一个在另一个循环中 - 对于外循环中的每个值(让我们称之为 i 循环),我们将遍历内循环中的每个值(让我们称之为 j 循环)。
因此,对于i,0的第一个值,您将循环遍历整个j循环(0到10)。所以你最终打印出来了:
0, 0
0, 1 # i is still 0, but j is now 1
0, 2 # i is still 0, but j is now 2
etc
如果你只是想要预期的输出,我会看一下%(modulo)运算符 - 不需要循环内的循环。
for i in xrange(0, 20):
print i, ",", i % 10
答案 1 :(得分:0)
for i, j in zip(range(10), range(10)):
print(i, j)
for i, j in zip(range(10, 14), range(4)):
print(i, j)
首先,您希望对i
和j
进行同步更改,然后再次需要进行同步更改,但在{之间使用 shift {1}}和i
。
其他方法:
与第一种情况一样,j
和i
相同,而在第二种情况下,仅将移到另一个,您只能使用一个变量进行循环:
j