2017-05-26 13 views
0

私は、キーが整数で値がリストである辞書を持っています。 list[0]の最低値を持つ上位n個の辞書エントリを持つ新しい辞書を返したいと思います。私はこの辞書のリストの最大値を見つける - python

{1: [5, 'hello'], 2: [6, 'hi'], 3: [2, 'hey']} 

などの辞書を持っており、nは2であるならば、それは戻ってくる例えば

{1: [5, 'hello'], 3: [2, 'hey']} 
+0

あなたはそれを自分で試みましたか? –

+0

はい、私はそれを行うよりスマートな方法があるのだろうかと思っています。恐らくその素敵なpythonの略語の一部を使用しています –

答えて

4

これはそれを行う必要があります。

from heapq import nsmallest 
from operator import itemgetter 

d = {1: [5, 'hello'], 2:[6, 'hi'], 3:[2,'hey']} 

smallestN = dict(nsmallest(2, d.items(), itemgetter(1))) 

print(smallestN) 

することができますまた、インポートせずにheapqまたはitemgetter

smallestN = dict(sorted(d.items(), key=lambda x: x[1][0])[:2]) 
+0

まさに私が探していたものです!ありがとうございました:) –

+0

@PaulRooneyあなたは正しいです - 助けてくれてありがとう。 – Darkstarone

関連する問題