首页 > 解决方案 > 如何在没有列表的情况下填充我的字典?

问题描述

我的任务是获取一个文本文件并找出谁发送的电子邮件最多。我得到了正确的答案,但 TA 说我必须列一个清单,因为我有一个不需要的 for 循环

name = input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
email_dict = dict()
email_list = list()
for lines in handle:
    lines = lines.strip()
    if not lines.startswith('From '): continue
    from_lines = lines.split()
    email_list = [from_lines[1]]
    
    for email in email_list:
        email_dict[email] = email_dict.get(email,0) + 1
    
    
prolific_committer = None
bigcount = None
    
for email, count in email_dict.items():
    if prolific_committer is None or count > bigcount:
        prolific_committer = email
        bigcount = count
print(prolific_committer,bigcount)

我怎么能清理这个,但更重要的是为什么?我还在学习,我自己理解了很多概念。把这一切放在一起是我苦苦挣扎的地方。

标签: python

解决方案


解决它

name = input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
email_dict = dict()
email_list = list()
for lines in handle:
    lines = lines.strip()
    if not lines.startswith('From '): continue
    from_lines = lines.split()
    from_lines = from_lines[1]
    email_dict[from_lines] = email_dict.get(from_lines,0) + 1

prolific_committer = None
bigcount = None

for email, count in email_dict.items():
    if prolific_committer is None or count > bigcount:
        prolific_committer = email
        bigcount = count
print(prolific_committer,bigcount)

推荐阅读