2013-07-17 55 views
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 :(

+0

什么是输出?你能指望什么?请举个例子。 – 2013-07-17 09:06:09

回答

2

for循环是一个小的向后你要遍历您的命令键,而不是原来的词典:

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

这完全修复它!谢谢! – user2586260

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"]) 

你要替换的排序列表中现有的循环分配

+0

是的,就是这样 - 我对我正在迭代的内容感到困惑。谢谢! – user2586260