A question was asked here on SO、数分前に辞書キーを値に基づいて並べ替えます。operator.itemgetterを使用して辞書を並べ替える
私は数日前のソートの方法についてはちょうどoperator.itemgetter
を読んで、それを試みることに決めましたが、それは動作していないようです。
質問に答えが表示されない場合は、operator.itemgetter
とお試しください。
だから、辞書ました:
>>> mydict = { 'a1': ['g',6],
'a2': ['e',2],
'a3': ['h',3],
'a4': ['s',2],
'a5': ['j',9],
'a6': ['y',7] }
私はこの試みた:
>>> l = sorted(mydict.itervalues(), key=operator.itemgetter(1))
>>> l
[['e', 2], ['s', 2], ['h', 3], ['g', 6], ['y', 7], ['j', 9]]
を、私はそれがしたいので、これは動作します。私は完全な辞書(mydict.itervalues()
)を持っていないので、私はこれを試してみました:
>>> complete = sorted(mydict.iteritems(), key=operator.itemgetter(2))
(私はそれが期待通りに)これは動作しません。
したがって、operator.itemgetter
を使用してディクショナリをソートし、ネストされたキーと値のペアにitemgetter
を呼び出します。
これを説明してください: 'operator.itemgetter(1)(v))'? – user225312
@A: 'operator.itemgetter(1)(v)'は 'v [1]'と同じです。あなたは 'a [b]'の出現を 'operator.itemgetter(b)(a)'に置き換えることができますが、これは*私があなたの質問を理解した方法ではありません:) –
itemgetterの作成は比較的高価です。これは、dictの各キーに1つを作成します。 –