我有一个关于特定模式打印的 FOR 循环列表理解的基本问题

I have a basic question of FOR loop list comprehension for particular pattern printing

这是基本的"for loop"图案打印代码如下:

for i in range (1,5):
    for j in range (i, 5):
        print(j , end='')
    print()

输出:

1234
234
34
4

但我希望使用列表理解使用与上述输出相同的逻辑。

用于列表理解。

我试过了:

[print(j,end='') for i in range(1,5) for j in range(i,5)]

输出为:

1234234344

Don't use a list comprehension for side effects,改用普通的 for 循环,即您的原始代码。

但是您可以通过使用解包而不是第二个循环来做到这一点:

[print(*range(i, 5), sep='') for i in range(1, 5)]

所以你可以这样做:

for i in range(1, 5):
    print(*range(i, 5), sep='')

您可以改用函数来解决此问题:

def myfn(i):
    for j in range(i,5):
        print(j,end='')
    print()


[myfn(i) for i in range(1,5) ]