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

3

我正在做一项练习,给定一个CSV文件(其中显示了前三行),我需要编写一个程序来计算每个发送者的消息数量,然后按照发送者的字母顺序打印输出结果。

发送者,消息
"hello there!"
"Computing is damn hard!"

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

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

我卡在如何继续的地方。

3
之后尝试类似以下的代码:对于每个在sorted(counting.keys())中的元素,打印出该元素和counting[each]。 - Jim Dennis
Jim Dennis 谢谢你... :) - Erika Sawajiri
1个回答

0

您的代码看起来假定每行的第一个值是发送者,但您提供给我们的 .csv 文件的前三行不符合此规则。

根据实际的 csv 文件前三行,我会这样做:

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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接