打印带有“#”符号的高度列表

2024-04-26 10:58:25 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我给大家带来一个显然很简单的问题,它不像看起来那么简单(至少对我来说)!你知道吗

假设我有以下整数列表:

num = [3,1,1,2]

我想打印与高度对应的“$”,即:


&
&     & 
& & & &



for i in num:
    print("#"*i)


打印:


& & &
&
&
& &


不过我想把前者展示出来!你知道吗

我试过这个:


for i in range(1, max(num)+1): # loops through the rows 
   for j in num:
       if j == i:
            print("#")
       else:
            print("")

但过了一段时间,我明白这个条件没有任何意义,因为我是在比较行号和高度!你知道吗

我试过其他的东西,但是没有一个能正常工作,如果有人能帮我,我会很感激的! 谢谢


Tags: thein列表forif高度range整数
2条回答

好问题!这是我在不使用任何软件包的情况下对它的看法

def printH(nList):
    m = max(nList)
    while m > 0:
        for l in nList:
            if(l>=m):
                print('#',end = ' ')
            else:
                print(' ',end = ' ')
        print('')
        m-=1
num = [5,3,1,1,2]
printH(num)

预期产量:

#
#
# #
# #     #
# # # # #

我只需要从最大值开始向后迭代,检查列表中的每个元素是否大于或等于该值,然后打印所需的字符,否则打印一个空格。你知道吗

>>> for x in range(max(num), 0, -1):
...     print(''.join(['&' if i >= x else ' ' for i in num]))
...
&
&  &
&&&&

相关问题 更多 >