我在构建直方图时遇到了一些问题。
这是我的代码:
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
完成。
从这里,我尝试通过尝试查看小时是否在字典中来构建直方图,如果是,则添加一个,如果不是,则添加小时。但这是出错的地方。我的输出如下:
任何建议或建议都会很棒!
肖恩
答案 0 :(得分:0)
您使用的方法不正确,以检查小时是否是直方图中的关键字。这是检查的正确方法:
if not (hr in list(distribution.keys()):
此外,您应检查值是否为键,然后使用相同的值作为您创建/添加的键。因此,以上将是:
if not (hr[1] in list(distribution.keys()):
这两个更改应该修复你的代码并为你建立一个很棒的直方图!
注意: 代码未经测试