d
並べ替えたいリストがあります。最初に最初の列で並べ替えます。同点の場合は、2番目の列を使用して並べ替えます。最初の列を昇順で並べ替えるが、2番目の列を降順で並べ替えるとします。昇順がデフォルトで、reverse
キーを使用すると、以下が機能するはずだと思いました。
sorted(d,key=lambda x: (x[0],x[1]),reverse=(False,True))
しかし、そうではありません。次のエラーが発生します。
reverse=(False,True))
TypeError: an integer is required (got type tuple)
それで、私がそれを正しくやっていないなら、それを修正する方法は?または、これを行う方法は完全に異なりますか?それについてのアドバイスは役に立ちます。
私の質問には確かに重複がありますが、すでに興味深い回答がありますので、それを維持したいと思います。
ドキュメントから:
reverseはブール値です。に設定する
True
と、リスト要素は各比較が逆になったかのように並べ替えられます。
したがって、代わりに必要なのは次のようなものです。
d.sort(key=lambda x: (x[0], -x[1]))
x[1]
が数値でない場合は、次を試してください。
d.sort(key=lambda x: x[1], reverse=True)
d.sort(key=lambda x: x[0])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加