Pythonに辞書があり、次のようにキーを値で並べ替えるとします。
my_dict = {'a':5, 'b':4, 'c':6, 'd':3, 'e':2}
sorted_list = sorted(my_dict, key=my_dict.get)
sorted_list
['e', 'd', 'b', 'a', 'c']
これは正常に機能しますが、辞書に(値に関して)衝突がある場合
my_dict = {'a':5, 'b':4, 'c':5, 'd':3, 'e':2, 'f':4, 'g':3}
sorted_list = sorted(my_dict, key=my_dict.get)
sorted_list
['e', 'd', 'g', 'b', 'f', 'a', 'c']
重複している場合、リストは辞書内の順序(並べ替えられた順序ではなく、番号順または挿入順序)で並べ替えられているように見えます。すべての場合に当てはまると思いますか?
編集1:私のキーは整数になり、値が衝突した場合に備えて、結果のキーを値で並べ替えたい(最も高いものから)
EDIT2:次のパラメータを追加すると、私の質問に役立ちます。しかし、私の場合、値を昇順で並べ替え、キーを降順で並べ替えたいと思います。次の場合、両方が降順key = lambda xになります:(x [1]、x [0])