首页 > 解决方案 > 如何在python中反转for循环并从左到右打印元素

问题描述

这是我用python编写的代码

n = 5
row = 2 * n - 2
for i in range(n,-1,-1):
    for j in range(row):
        print(end="")

    row -=2

    for k in range(i+1):
        print('*',end=" ")

    print()

得到的输出是这个

* * * * *  
* * * * 
* * * 
* * 
*

例如,我想从左到右顺序打印这个开始

预期的输出是: -

* * * * *
  * * * *
    * * *
      * *
        *

如果有任何可能的方式从左到右打印元素,因为在我的大部分程序中,我需要我正在搜索的逻辑,请帮助我,即使我使用了循环的反转函数,它也会反转循环,但我不是得到我所期望的

标签: pythonpython-2.7

解决方案


n = 5
print(*[' '.join(' '*i + '*'*(n-i)) for i in range(n)], sep='\n')

输出:

* * * * *
  * * * *
    * * *
      * *
        *

解释:

for i in range(n):
    chars = ' '*i + '*'*(n-i)  #  creating list of (i) spaces followed
                                   #  by (n-i) stars to finish a line of n elements
    print(' '.join(chars))  # join prepared values with spaces

推荐阅读