-1
複数のルールに基づいて注文する必要があるdictオブジェクトの配列があります。複数のキー値と比較ルールに基づいてdictオブジェクトを注文する
これはサンプルdictsがどのように見えるかです:
dict1 = {'key1': '85', 'key2': '163', 'key3': '3'}
dict2 = {'key1': '3', 'key2': '23', 'key3': '1'}
dict3 = {'key1': '88', 'key2': '153', 'key3': '6'}
そして、これらのルールは、順序のために従うべきである:
key1 - the higher value is the better
key2 - the higher value is the better
key3 - the lower value is the better
だから私のリストを注文すると、このようにする必要があります後:
dict_list = [dict1, dict3, dict2]
#dict1 is the first obj, because it has the biggest key1 + key2 value and the 2. lowest key3 value
dict_list
値によるオブジェクト(希望の結果):
# value name - high values (key1 + key2) - low values (key3)
1. dict1 248 3
2. dict3 241 6
3. dict2 26 1
key1
から
とkey2
私は比較のための絶対数を作成することができますが、key3
はまだそこだろうと私はそれのために同じロジックを使用することはできませんので、残念ながら、私はそれを行うことはできません。
私の質問:注文に独自のルールを定義することは可能ですか?このようなタスクのPython関数はありますか?
{key1:2、key3:1}、{key1:1、key3:2}のときはどうしますか? –
キー機能で独自の注文を定義することができます。https://wiki.python.org/moin/HowTo/Sortingを参照してください。 – pvg