我想用Python打印一个星号图案来制作一个垂直直方图。在水平方向上做同样的事情很容易,但是如何在垂直方向上做呢?
发布于 2018-06-12 13:08:46
您需要以行的形式打印数据,从直方图值最大的行开始。
在每一行中,您将为每个存储桶打印一个'*‘,其中该存储桶具有大于或等于当前行对应的值,以及一个空格,其中该值小于当前行。
例如,三个六面骰子之和的直方图:
>>> r = list(x+y+z+3 for x in range(6) for y in range(6) for z in range(6))
>>> data = [r.count(v) for v in range(max(r)+1)]
>>> for y in range(max(data), 0, -3):
... print(*('*' if v >= y else ' ' for v in data))
...
* *
* * * *
* * * * * *
* * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * *
>>>
https://stackoverflow.com/questions/50809008
复制相似问题