更新:在Python中按从高到低排序列表输出
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)