0

我已经根据字典中的值对字典进行了排序。现在,我想使用排序后的键列表打印字典的有序相关方面。

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

sc = sorted(stats,key=lambda x:(stats[x]['avg length'],x)) #to get a sorted list of keys

for sc in stats:
    print "Name %s, Number: %s, Average length: %s, Max length: %s, Min length: %s" % (sc, stats[sc]["number"],stats[sc]["avg length"], stats[sc]["max length"], stats[sc]["min length"])

但是,输出的顺序与我的列表 sc 的顺序不匹配。事实上,我看不到值如何输出的任何模式。

对不起,如果这是一个微不足道的问题——我是 python 新手 :(

4

2 回答 2

2

猜测一下,您可能打算编写如下内容:

for s in sc:
    print "Name %s, Number: %s, Average length: %s, Max length: %s, Min length: %s" % (s, stats[s]["number"],stats[s]["avg length"], stats[s]["max length"], stats[s]["min length"])

您正在替换现有 for 循环分配中的排序列表。

于 2013-07-17T09:07:12.567 回答
2

你的for循环有点倒退。您想遍历您的有序键,而不是您的原始字典:

for key in sc:
    print ... % (key, stats[key], ...
于 2013-07-17T09:07:46.560 回答