结合循环

时间:2018-04-15 04:01:20

标签: python for-loop

在我们执行时的Python 3.x中:

for i in range(2):
    for j in range(2):
        print (i,j)

我们得到:
0 0
0 1
1 0
1 1

有什么方法可以创建2个for循环,其中i的范围是(0,5),j的范围是(10,15)?也许像:

for i,j in range("myrange for i and myrange for j"):
print(i,j)

输出结果如下:
0 10
1 11
2 12
3 13等。

1 个答案:

答案 0 :(得分:4)

您正在循环对相关值,而不是两个独立列表。没有嵌套,只有一个循环,一次取一对。

for i in range(5):
    j = i+10
    print(i, j)

在更一般的情况下,如果j并非始终可以从i轻易导出,则可以说

for i, j in [(0, 10), (1, 42), (2, 12)]:
    print(i, j)

如果从两个相同长度的现有列表中填充ij

ilist = [0, 1, 2]
jlist = [10, 42, 12]
for i, j in zip(ilist, jlist):
    print(i, j)

如果i只是j列表中的索引,则可以使用enumerate

for i, j in enumerate(range(10, 14)):
     print(i, j)

如果您将嵌套视为维度,则可以认为有行(i值)和列(j值要添加);

for i in range(5):
    result = list()
    for j in (0, 10):
        result.append(i+j)
    print(*result)

现在,每个i值都会添加到每个j值中,并为每个i值收集并打印这些值。因为内部循环的第一次迭代的第一个j值每次都是0,所以第一个输出值方便地与输入i值相同。