うまくいけば、これは理にかなっています...
次の形式のタプルのリストがあります。
list_of_tuples = [('a', 1), ('b', 3), ('b', 2), ('a', 3)]
望ましい出力は
sorted_list_of_tuples = [('a', 1), ('b', 2), ('b', 3), ('a', 3)]
問題は、2 番目のエントリが増加し、最初のエントリが減少することです。
import operator as op
sorted_list_of_tuples = sorted(list_of_tuples, key=op.itemgetter(2, 0))
もちろん、これは両方のフィールドを増加するようにソートします。これを行うためのかわいい (つまり、数行の) 方法が思いつきません。この種の並べ替えを簡単に達成する方法はありますか?
を使用して括弧内のリスト内包表記の要素を参照できることを覚えているよう_
です。
はっきりしていないかもしれませんが、この場合は整数の方が重要です。その順序はリスト全体で増加するはずです。同点の場合 (つまり、2 番目のエントリが等しい場合)、'a' の前に 'b' が出現するようにします。