首页 > 解决方案 > 为什么我的字典插入将我的变量分成两个数字而不是一个?

问题描述

我是 Python 和 Stack Overflow 的新手,所以请原谅我在语法、语法、结构等方面犯的任何错误。

我必须制作一个程序来读取文本文件并提取每封电子邮件的发送时间。然后应该将这些时间存储在字典中,我还可以在其中跟踪按时间发送的最多电子邮件。我仅限于使用某些功能,因为这是用于 coursera 练习。

我几乎完成了它,但我陷入了一个我似乎无法弄清楚的非常奇怪的错误。将我的时间插入字典时,它会将数字分成两个数字并分别跟踪它们,因此而不是得到这个输出:

{'04' : 3, '11' : 6, '10' : 2}

我正进入(状态:

{'0' : 5, '1' : 14 , '4' : 3}

我将代码从第一个 for 循环和结果中取出,而不是给我:

{'16' : 1}

它给了我:

{'1' : 1, '6' : 1}
name = input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
dic = dict()

for line in handle:
        if line.startswith('From '):
            words = line.split()
            
            time = words[5].split(':')
            
            print(time[0])
            
            for word in time[0]:
                dic[word] = dic.get(word, 0 ) + 1
 

print(dic)

标签: pythondictionary

解决方案


time[0]是单个字符串而不是字符串列表,因此遍历它会导致遍历字符。这就是为什么我的数字被“分成”两个字符的原因。


推荐阅读