根据有序列表打印字典

时间:2013-07-17 09:05:19

标签: python list dictionary sorted

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

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

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的新手:(

2 个答案:

答案 0 :(得分: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循环分配中的已排序列表。

答案 1 :(得分:2)

你的for循环有点倒退。您想迭代已订购的密钥,而不是原始字典:

for key in sc:
    print ... % (key, stats[key], ...