双循环计数器,内部和外部都计数
Counter in double loop with counting in both internal and external for
我想知道下面的计数方式是否有一个众所周知的公式:
count = 0
for i in range(n):
for j in range(m):
count = count + 1
count = count + 10
非常感谢,
卡约
编辑 1:
谢谢欧内斯特,你是对的,但这不是真正的问题所在。对不起,我不够清楚,让我更好地解释我的问题。我不只是想数数,我需要在内循环中使用这个计数器。我有一个 2D 展平数组,我只想访问该数组的一个子 2D 区域。所以,实际上,我正在做的是:
count = 0
for i in range(n):
for j in range(m):
big_flatten_array(count) = value
count = count + 1
count = count + 10
编辑 2:
仅使用
是行不通的
count = i * 10 + j
尝试检查值:
count = 0
for i in range(3):
for j in range():
k = i * 2 + j
vec[k] = count
vec2[k] = i * 10 + j
count = count + 1
count = count + 10
你会看到 vec 和 vec2 不一样...
有很简单的解决方法
count = n*(10+m)
让我试试。如果我理解正确,你只需要循环内 count
的当前(不是最终)值。所以应该这样做:
# In the inner loop
count = i * 10 + j
假设 count = count + 10
行不存在,那么它就是:
count = i*m + j
考虑 n = 3,且 m = 3
所以计数值就像 0、1、2、3、4 ..
添加行 count += 10
后,您只需在每次外循环完成时将 10 的倍数添加到计数值即可。
0、1、12、13、24、25...或 0、1、10+2、10+3、20+4、20+5...
所以表达式变成
count = (10*i) + (i*m+j)
你可以像这样得到所有的计数值:
count = [(10 * i) + (i * m + j) for i in range(n) for j in range(m)]
我想知道下面的计数方式是否有一个众所周知的公式:
count = 0
for i in range(n):
for j in range(m):
count = count + 1
count = count + 10
非常感谢,
卡约
编辑 1:
谢谢欧内斯特,你是对的,但这不是真正的问题所在。对不起,我不够清楚,让我更好地解释我的问题。我不只是想数数,我需要在内循环中使用这个计数器。我有一个 2D 展平数组,我只想访问该数组的一个子 2D 区域。所以,实际上,我正在做的是:
count = 0
for i in range(n):
for j in range(m):
big_flatten_array(count) = value
count = count + 1
count = count + 10
编辑 2: 仅使用
是行不通的count = i * 10 + j
尝试检查值:
count = 0
for i in range(3):
for j in range():
k = i * 2 + j
vec[k] = count
vec2[k] = i * 10 + j
count = count + 1
count = count + 10
你会看到 vec 和 vec2 不一样...
有很简单的解决方法
count = n*(10+m)
让我试试。如果我理解正确,你只需要循环内 count
的当前(不是最终)值。所以应该这样做:
# In the inner loop
count = i * 10 + j
假设 count = count + 10
行不存在,那么它就是:
count = i*m + j
考虑 n = 3,且 m = 3
所以计数值就像 0、1、2、3、4 ..
添加行 count += 10
后,您只需在每次外循环完成时将 10 的倍数添加到计数值即可。
0、1、12、13、24、25...或 0、1、10+2、10+3、20+4、20+5...
所以表达式变成
count = (10*i) + (i*m+j)
你可以像这样得到所有的计数值:
count = [(10 * i) + (i * m + j) for i in range(n) for j in range(m)]