更新:在Python中按从高到低排序列表输出

0 投票
4 回答
1482 浏览
提问于 2025-04-16 17:13
    for x in letters:
         frequency[x]+=1
    for x in frequency:
        print x,frequency[x],frequency[x]/float(n)    

抱歉,我对编程还很陌生,我想把输出的结果按 frequency[x]/float(n) 的值从高到低排序。有没有什么方法可以仅通过打印命令来实现排序呢?

非常感谢!

4 个回答

1

这个应该能解决问题:

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
3

关于这些键:

sorted(frequency, key=lambda x: frequency[x], reverse=True)
1

for x in sorted(frequency, key=lambda y: frequency[y]/float(n), reverse=True):
    print x,frequency[x],frequency[x]/float(n)

撰写回答