2 つの列を使用してタプル リストを並べ替えるには、次のようにします。
t_l = sorted(t_l, key = lambda t_l: (t_l[-1], t_l[1]))
t_l[-1] がデフォルトの昇順で、t_l[1] が降順でソートされるようにソートするにはどうすればよいですか?
reverse = True を使用すると、両方の列が降順で並べ替えられます。
何か案は?
2 つの列を使用してタプル リストを並べ替えるには、次のようにします。
t_l = sorted(t_l, key = lambda t_l: (t_l[-1], t_l[1]))
t_l[-1] がデフォルトの昇順で、t_l[1] が降順でソートされるようにソートするにはどうすればよいですか?
reverse = True を使用すると、両方の列が降順で並べ替えられます。
何か案は?
列のいずれかが数値である場合、または数値としても表現できる場合は、列の 1 つの並べ替えを逆にすることができます。次に、数値列を単に否定して、その列の並べ替えを逆にすることができます。
t_l[-1]
列が数値の場合は、次を使用します。
sorted(t_l, key=lambda i: (-i[-1], i[1]))
(入力リストとlambda
引数に異なる名前を使用すると、混乱が軽減されます)
その列が数値ではなく、もう一方の列が数値である場合でも、同じトリックを使用できますが、並べ替え全体を逆にする必要があります。
sorted(t_l, key=lambda i: (i[-1], -i[1]), reverse=True)
ord()
関数を使用して、単一文字列を数値にすることができます。を使用ord()
すると同じ並べ替え順序になりますが、数値であるため、逆にすることができます。
sorted(t_l, key=lambda i: (-ord(i[-1]), i[1]))
例で簡単な解決策を試しました
t_l = [[3,4,5,6,2,4,6],[6,7,3,4,5]]
t_l = [sorted(t_l[0], reverse = False),sorted(t_l[1], reverse = True)]
与える
>>> t_l
[[2, 3, 4, 4, 5, 6, 6], [7, 6, 5, 4, 3]]
それはあなたが探しているものですか?