ОБНОВЛЕНИЕ: сортировка списка для вывода с наивысшего в низший в Python - PullRequest
0 голосов
/ 08 мая 2011
    for x in letters:
         frequency[x]+=1
    for x in frequency:
        print x,frequency[x],frequency[x]/float(n)    

Извините, но я довольно новичок в программировании и во всем, и я пытаюсь отсортировать вывод с наибольшего значения frequency[x]/float(n) до минимального значения.Есть ли какой-нибудь способ сортировки через команду печати?

Большое спасибо!

Ответы [ 4 ]

3 голосов
/ 08 мая 2011

Для ключей:

sorted(frequency, key=lambda x: frequency[x], reverse=True)
1 голос
/ 08 мая 2011

Ответы вспыхивают прямо у меня на глазах!Да, используйте sorted.Подробнее здесь .

1 голос
/ 08 мая 2011

Do

for x in sorted(frequency, key=lambda y: frequency[y]/float(n), reverse=True):
    print x,frequency[x],frequency[x]/float(n)
1 голос
/ 08 мая 2011

Это должно сработать:

freqs = sorted([frequency[x]/float(n) for x in frequency], reverse=True)

Если вы хотите больше походить на оператор печати, который вы указали выше, попробуйте следующее:

for (fxn, fx, x) in sorted([(frequency[x]/float(n), frequency[x], x) for x in frequency], reverse=True):
    print x, fx, fxn
...