【问题标题】:create a histogram using a python list使用 python 列表创建直方图
【发布时间】:2017-11-12 11:32:55
【问题描述】:

您好,我正在尝试创建直方图。 1. 我应该读一个带数字的文件。
2.找到价值最高的bin。
然后尝试使用该数字制作直方图。
下面的代码有效:

def histogram (list):
    for i in list:
        print('*' * i)
histogram([1,2,3,4,5,4,3,2,1])

但问题是当我想读取文件的编号时,它会出错。 我该怎么办?

当我尝试将文件编号乘以“*”时,会出现以下错误。

TypeError: can't multiply sequence by non-int of type 'str'

【问题讨论】:

  • 也许你应该告诉我们你得到了什么错误?
  • 你的代码可以在我的 python 2.7 上运行
  • 您的示例中没有任何部分与读取文件有关;你遗漏了什么吗?
  • 我编辑了我的帖子。请查看错误。

标签: python


【解决方案1】:

这是怎么做的:

def histogram (seq):
    for i in seq:
        print('*' * i, end='\n')
histogram([1,2,3,4,5,4,3,2,1])

输出:

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

或者更好,包括箱号:

def histogram (seq):
    for idx, i in enumerate(seq):
        print(idx, '*' * i, end='\n')
histogram([1,2,3,4,5,4,3,2,1])

输出:

0 *
1 **
2 ***
3 ****
4 *****
5 ****
6 ***
7 **
8 *

【讨论】:

  • 谢谢。我怎样才能从文件中读取它然后像这样打印?
    dar = open("d:\mass.txt", "r") cont = dar.read() print(cont) def histogram (list): for i in list: print('*' * int(i)) histogram(cont)
  • 是的,如果你从一个文件中读取内容,你需要强制转换为 int。
  • 你能告诉我怎么做吗?
  • variable 转换为int --> int(variable)
  • 如何找到具有最高值的 bin,然后将其用作我的 Z 玻色子质量测量值?我应该使用最大值吗?但如果是的话,我应该如何使用它作为衡量标准?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2022-01-21
相关资源
最近更新 更多