Python - 其他循环中的循环

时间:2017-10-22 14:38:35

标签: python for-loop

我想写一个这样的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

我该如何解决这个问题?

2 个答案:

答案 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)

首先,您希望对ij进行同步更改,然后再次需要进行同步更改,但在{之间使用 shift {1}}和i

其他方法:

与第一种情况一样,ji 相同,而在第二种情况下,仅将移到另一个,您只能使用一个变量进行循环:

j