【发布时间】:2016-06-09 14:25:40
【问题描述】:
我对 python 还很陌生,我目前正在尝试做一个我似乎无法完成的练习。
基本上,我有一个包含电子邮件对话的长文本 (.txt) 文档。现在,我必须通读文档并列出所有电子邮件地址(我可以正确)
name = raw_input("Enter file:")
if len(name) < 1 : name = "file.txt"
handle = open(name)
for line in handle:
email = line.strip()
if email.startswith('From: '):
name = email.split()
print name
由此产生的输出是一个多行列表,每行包含 2 个部分。
['From:', 'email@address.com']
['From:', 'email@address.com']
['From:', 'email@address.com']
['From:', 'email@address.com']
['From:', 'email@address.com']
现在,我的问题是我必须将这些电子邮件地址放入字典中并在其旁边进行计数,例如
email@address.com 5
所以现在我使用 .get() 函数将循环添加到代码中
name = raw_input("Enter file:")
if len(name) < 1 : name = "file.txt"
handle = open(name)
for line in handle:
email = line.strip()
if email.startswith('From: '):
name = email.split()
print name
for names in name:
count[names] = count.get(names,0) + 1
print count
此时我得到了完整的列表和下面的输出:
{'From:': 1}
{'From:': 1, 'email@address.com': 1}
我现在如何才能在字典中只获取 email@address.com?似乎我无法将完整列表放入字典中,并且添加了我不需要的“发件人”。然后,我将尝试编写其余部分以打印字典中的最大计数,这将是我想要的输出。
我已经坚持了一段时间,不幸的是,我需要保持简单,并减去我使用过的功能。我试图环顾互联网和这里,但到目前为止,我没有尝试过任何帮助我。我对此很陌生,所以如果修复很明显,我很抱歉
提前致谢。
【问题讨论】:
标签: python list for-loop dictionary