我有一个关于特定模式打印的 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) ]
这是基本的"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) ]