我有一个用于特定图案打印的FOR循环列表理解的基本问题

问题描述 投票:0回答:1

这是基本的“ for loop”图案打印代码,如下所示:

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

输出:

1234
234
34
4

但是我希望使用List Comprehension使用相同的逻辑与上述输出相同。

用于列表理解。

我尝试过:

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

输出为:

1234234344
python python-3.x for-loop list-comprehension nested-loops
1个回答
0
投票

[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='')

0
投票

您可以通过使用函数代替此方法:

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


[myfn(i) for i in range(1,5) ]
© www.soinside.com 2019 - 2024. All rights reserved.