我正在做一个给定CSV文件message.csv
(前三行显示在下面)的练习,我需要编写一个程序来计算每个发件人的邮件数量,然后打印出来按发件人的字母顺序输出。
发件人,留言
“你好!”
“计算很难!”
这是我到目前为止所尝试的:
from collections import defaultdict
import csv
counting = defaultdict(int)
for row in csv.reader(open(message.csv)):
counting[row[0]] += 1
我一直坚持如何继续。
答案 0 :(得分:0)
您的代码看起来假设每行的第一个值是发件人,但您提供给我们的.csv文件的3行不符合此条件。
根据csv文件的实际前3行,我会这样做:
sender = None
for row in csv.reader(open(message.csv)):
if len(row) == 2:
sender = row[0]
counting[sender] += 1
然后正如Jim Dennis所说,但你不应该明确地调用.keys():
for sender in sorted(counting):
print sender, counting[sender]