如何将多个列表中的相同索引添加到字典中



所以我通过freecodecamp学习编程,我被教授教这门课的一个练习卡住了。下面是所讨论的练习:

运动2:编写一个程序,按提交完成的日期对每封邮件进行分类。为此,查找以"from"开头的行,然后查找第三个单词,并对一周中的每一天进行连续计数。在程序结束时打印出字典的内容(顺序无关)。

这是有问题的电子邮件日志http://www.py4e.com/code3/mbox.txt

以下是我为这个问题成功编写的代码:

filein = input('Input an email log txt file please: ')
emaillog = open(filein)
days = dict()
for x in emaillog:
if 'From ' in x:
print(x.split())
else:
continue

我注意到它打印出大量的列表,所有列表都很好地分割,我关心的是所有列表的索引[2]处的区域。然而,我不明白我应该如何处理数据来推断日期并构建我的字典。

编辑:谢谢你们的帮助,这是我最终想出的,给了我正确的结果:
filein = input('Input an email log txt file please: ')
emaillog = open(filein)
days = dict()
lis = list()
for x in emaillog:
if 'From ' in x:
array = x.split()
day = array[2]
days[day] = days.get(day, 0)+1
else:
continue
print(days)

下面是您如何使用您所做的算法的思想来完成此任务

filein = input('Input an email log txt file please: ')
emaillog = open(filein)
days = dict()
for x in emaillog:
if 'From ' in x[:5]:
L = x.split()
if L[2] in days:
days[L[2]] +=1
else: 
days[L[2]] =0   

输出:

{'Sat': 60, 'Fri': 314, 'Thu': 391, 'Wed': 291, 'Tue': 371, 'Mon': 298, 'Sun': 65}

但是你可以在这里使用RegEx

我不打算为你做整个练习,但是下面的应该给你一个开始:

filein = input('Input an email log txt file please: ')
days = dict()
with open(filein) as emaillog:
for line in emaillog:
if line.startswith('From'):
print(line, end='')
row = line.split()  # Convert line into list of words.
# Get day from list and add 1 to its counter in the days dict.
...
print(days)

相关内容

  • 没有找到相关文章

最新更新