2013-07-17 4 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"]) 

Однако порядок выхода не соответствует порядку в моем списке СБН. На самом деле, я не могу видеть картину с тем, как выводятся значения ..

Извините, если это тривиальный вопрос - я новичок в Python :(

+0

Какой выходной сигнал? Что вы ожидаете? Пожалуйста, дайте образец. –

ответ

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

Смежные вопросы