在我们执行时的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等。
答案 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)
如果从两个相同长度的现有列表中填充i
和j
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
值相同。