2013-07-17 80 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