私は以下の形式のリストの辞書を持っています。辞書のリストの個々の列に基づく並べ替え
b =
{'a': [1, 1, 1],
'c': [1, 0, 0],
'b': [1, 0, 1],
'e': [0, 0, 1],
'd': [0, 0, 0],
'g': [0, 1, 1],
'f': [0, 1, 0],
'h': [1, 1, 0]
}
私が探しているのは、リストを並べ替え、リストの列に基づいて辞書を表示することです。最初の列をソートし、次に2番目の列を最後の3番目の列でソートする必要があります。
私はこのようなリストを望みます。
b =
{'d': [0, 0, 0],
'e': [0, 0, 1],
'f': [0, 1, 0],
'g': [0, 1, 1],
'c': [1, 0, 0],
'b': [1, 0, 1],
'h': [1, 1, 0],
'a': [1, 1, 1]
}
私はこのようなリストの最初の値の並べ替えを行うことができます。
sorted(b.items(), key=lambda e:e[1][0])
と同様に、第2および第3のものを行う。しかし、最初の列をソートすると、2番目と3番目の列はソートされません。
だから、私はこれをしました。
sorted(b.items(), key=lambda e:e[1])
これは私に正しい答えを与えます。しかし、私はこれがどのように機能しているのか分かりません。ここで
第二に、私がしなければ、
sorted(b.values(), reverse=True, key=lambda e:e[0])
残りの二つの列がソートされていませんが、それは価値の唯一の最初の列をソートします。
私は自分の答えを持っていますが、これについての説明はいくつかのケースでは機能しており、他の人では機能しません。
ありがとうございます。
私はあなたが何を求めているのか分からず、何を並べていて、どのような出力を期待していますか? –
@PadraicCunningham、私は私の質問でそれをお読みください。私は辞書のリストをソートしようとしています。 –
あなたはそれぞれのリスト/値である 'e [1]'でリストをソートしていますが、それについて何を理解していませんか? –