构建直方图时输出错误

时间:2017-08-08 19:57:35

标签: python-3.x dictionary histogram

我在构建直方图时遇到了一些问题。

这是我的代码:

distribution = dict()
count = 0
name = input("Enter file:")
handle = open(name)
for line in handle:
    line = line.rstrip()
    if not line.startswith("From "):
        continue
    count = count + 1
    firstSplit = line.split()           # This gets me the line of text
    time = firstSplit[5]                # This gets me time - ex: 09:11:38
    # print(firstSplit[5])
    timeSplit = time.split(':')
    hr = timeSplit[1]                   # This gets me hrs - ex: 09

    # Gets me the histogram
    if hr not in distribution:
        distribution[hr[1]] = 1
    else:
        distribution[hr[1]] = distribution[hr[1]] + 1
    print(distribution)

# print(firstSplit[5])

我阅读了文字,并将其拆分以获取行,由firstSplit完成。该行文本包括时间戳。我做了第二次拆分以获得时间,由timeSplit完成。

从这里,我尝试通过尝试查看小时是否在字典中来构建直方图,如果是,则添加一个,如果不是,则添加小时。但这是出错的地方。我的输出如下:

Example of Output

任何建议或建议都会很棒!

肖恩

1 个答案:

答案 0 :(得分:0)

您使用的方法不正确,以检查小时是否是直方图中的关键字。这是检查的正确方法:

if not (hr in list(distribution.keys()):

此外,您应检查值是否为键,然后使用相同的值作为您创建/添加的键。因此,以上将是:

if not (hr[1] in list(distribution.keys()):

这两个更改应该修复你的代码并为你建立一个很棒的直方图!

注意: 代码未经测试