双循环的迭代计数器
Iteration counter for double loops
我正在尝试找到计算此双 for
循环(例如 python 中的每次迭代)的公式:
for i in range(5):
for j in range(5):
count = MYSTERIOUS_FORMULA
print count
这里count的最终值应该是25。
我尝试了 count=(i+1)*j
但它产生了 0,1,2,3,4,0,2,4
等等
双循环(a.k.a。嵌套循环)。
# Set count to 0 before loop starts
count = 0
for i in range(5):
for j in range(5):
# solved mysterious formula (short hand 'count = count + 1')
count += 1
# displaying count after loop
print(count)
扩展公式 count = count + 1
,这会将 count
设置为 equal
本身 + 1
:
count = count + 1
如果您想在每次迭代中计算数字:
for i in range(5):
for j in range(5):
count = 5*i+j+1
print count
最简单的方法是使用 itertools.product
and enumerate
:
from itertools import product
for idx, (i, j) in enumerate(product(range(5), range(5)), 1):
print(idx, i, j)
打印:
1 0 0
2 0 1
3 0 2
4 0 3
5 0 4
[...]
24 4 3
25 4 4
神秘的公式很简单:
{count} = {index of current loop} + {size of current loop}*{count of parent loop}
例如,考虑一个循环:
x = 5
for i in range(x):
count = i
明确地说,count = i + x*0
但是第二项无关紧要,因为没有父循环。两个循环的示例可能更具启发性:
x = 5
y = 6
for i in range(x):
for j in range(y):
count = j + y*(i)
请注意,我将 i
放在括号中以强调它是 {count of parent loop}
。这个公式可以很容易地扩展到第三个循环:
x = 5
y = 6
z = 7
for i in range(x):
for j in range(y):
for k in range(z):
count = k + z*(j + y*(i))
等等...
我正在尝试找到计算此双 for
循环(例如 python 中的每次迭代)的公式:
for i in range(5):
for j in range(5):
count = MYSTERIOUS_FORMULA
print count
这里count的最终值应该是25。
我尝试了 count=(i+1)*j
但它产生了 0,1,2,3,4,0,2,4
等等
双循环(a.k.a。嵌套循环)。
# Set count to 0 before loop starts
count = 0
for i in range(5):
for j in range(5):
# solved mysterious formula (short hand 'count = count + 1')
count += 1
# displaying count after loop
print(count)
扩展公式 count = count + 1
,这会将 count
设置为 equal
本身 + 1
:
count = count + 1
如果您想在每次迭代中计算数字:
for i in range(5):
for j in range(5):
count = 5*i+j+1
print count
最简单的方法是使用 itertools.product
and enumerate
:
from itertools import product
for idx, (i, j) in enumerate(product(range(5), range(5)), 1):
print(idx, i, j)
打印:
1 0 0
2 0 1
3 0 2
4 0 3
5 0 4
[...]
24 4 3
25 4 4
神秘的公式很简单:
{count} = {index of current loop} + {size of current loop}*{count of parent loop}
例如,考虑一个循环:
x = 5
for i in range(x):
count = i
明确地说,count = i + x*0
但是第二项无关紧要,因为没有父循环。两个循环的示例可能更具启发性:
x = 5
y = 6
for i in range(x):
for j in range(y):
count = j + y*(i)
请注意,我将 i
放在括号中以强调它是 {count of parent loop}
。这个公式可以很容易地扩展到第三个循环:
x = 5
y = 6
z = 7
for i in range(x):
for j in range(y):
for k in range(z):
count = k + z*(j + y*(i))
等等...