如何按字母顺序对字典进行排序?

时间:2013-06-20 08:39:07

标签: python

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

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

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

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

我一直坚持如何继续。

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]