私は大きな辞書を持っています。これらのエントリを降順に並べ替えてから、最初の n 個の項目を出力するにはどうすればよいですか? 並べ替えられたアイテムを辞書に出力するには、次のコードを使用しています。
print sorted(mydictionary.iteritems(), key=operator.itemgetter(1), reverse=True)
私は大きな辞書を持っています。これらのエントリを降順に並べ替えてから、最初の n 個の項目を出力するにはどうすればよいですか? 並べ替えられたアイテムを辞書に出力するには、次のコードを使用しています。
print sorted(mydictionary.iteritems(), key=operator.itemgetter(1), reverse=True)
使用できますheapq.nlargest
:
import heapq
print heapq.nlargest(n, mydictionary.iteritems())
通常、これは (ソートしてからスライスする場合と) 効率的にはほぼ同じですが、非常に大きな辞書や小さな辞書n
の場合は、わずかに高速です (分析は後述)。読みやすいのもメリット!
次に、スライスを印刷できます。
print sorted(mydictionary.items(), key=operator.itemgetter(1), reverse=True)[:10]