首页 > 解决方案 > 我需要像我想要的示例中所示的那样打印

问题描述

这是我拥有的当前代码:

def render_histogram(values):

    rows = []

    for value in values:
        rows.append((" "'\n'*(max(values)-value))+("*"'\n'* value))

    return '\n'.join(rows)
print(render_histogram([4, 5, 3, 8, 1]))

期望的结果:

在此处输入图像描述

标签: pythonprinting

解决方案


您可以尝试使用内置zip()方法转置rows列表`:

def render_histogram(values):
    tallest = max(values)
    rows = [(value * '*').rjust(tallest) for value in values]
    return '\n'.join(''.join(s) for s in zip(*rows))

print(render_histogram([4, 5, 3, 8, 1]))

输出:

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

推荐阅读