Python编写render_histogram直方图绘制函数输出不符合预期求解
直方图打印函数修改方案
原有代码的问题在于将每个柱子的内容独立生成后直接按列拼接,不符合横向逐行打印直方图的逻辑:直方图需要从最高层开始,从上到下逐行生成,每行对应所有柱子在当前高度的显示状态。
修改后的代码如下:
def render_histogram(values): max_val = max(values) rows = [] # 从最高行开始向下遍历每一层 for current_height in range(max_val, 0, -1): row = [] for val in values: # 当前柱子高度大于等于当前行高就显示*,否则显示空格 row.append('*' if val >= current_height else ' ') rows.append(''.join(row)) return '\n'.join(rows) print(render_histogram([4, 5, 3, 8, 1]))
运行该代码即可输出你预期的垂直直方图效果。
内容的提问来源于stack exchange,提问作者user17064198
相关产品推荐
相关产品推荐

