如何在 python 中生成倾斜的 2d 循环

How to generate skewed 2d loop in python

如何在 python 语法中生成此循环:

for (int i = 0; i < 10; i++)
    for (int j = 0; j <= i; j++)
        (...)

当然,这行得通:

for i in range(10):
    for j in range(10):
        if j > i: continue
        print((i,j))

但是有没有更优雅的方式在一行中说 j 小于或等于 i

好的,添加我的评论作为答案,并进行更正(for j in range(i+1) 而不是 for j in range(i)):

for i in range(10):
    for j in range(i+1):
        print(f'i: {i}, j: {j}')

这对你有帮助吗?

注意range中的数字是迭代到的数字。因此,

for i in range(10):
    for j in range(i + 1):
        # Do something

范围函数range(start, stop, step)有三个参数。 start 是可选参数,指定范围的下限。它默认为 0。 stop 是必需的参数,用于指定不包括的范围上限。 step为可选参数,指定增量,默认值为1。

也就是说

// ...
for (int j = 0; j < i; j++) {
    // ...
}

翻译成

# ...
for j in range(0, i, 1):
    # ...

可以简化为

# ...
for j in range(i):
    # ...