3

我正在做一个练习,给定一个 CSV 文件message.csv(其中的前三行如下所示),我需要编写一个程序来计算来自每个发件人的消息数量,然后按发件人的字母顺序打印输出。

发件人,留言
“你好!”
“计算太难了!”

这是我到目前为止所尝试的:

from collections import defaultdict
import csv
counting = defaultdict(int)
for row in csv.reader(open(message.csv)):
    counting[row[0]] += 1

我被困在如何继续。

4

1 回答 1

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

然后正如吉姆丹尼斯所说,但你不应该明确调用 .keys() :

for sender in sorted(counting):
    print sender, counting[sender]
于 2013-07-27T05:20:44.880 回答