Python で複数のキーを持つリストを並べ替える: 1 つは逆順
複数の条件でリストを整理する場合、Python の組み込みの並べ替え() 関数は多用途のツールを提供します。ただし、特定のキーのソート順序を逆にするという要件が常に満たされるとは限りません。
問題の理解
タプルのリストがあるシナリオを考えてみましょう。 2 つの要素を含む:
myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
このリストを 2 つのキーを使用して並べ替えることができます。1 つは大文字と小文字を区別しない (y[0]. lower())、もう 1 つは逆順 (y[1]) )。次のコードを使用すると、前者を実現できます:
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
ただし、並べ替え順序を逆にするには、reverse = True 引数を追加できます:
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
残念ながら、これにより並べ替えが逆になります。
問題の解決
この要件を満たすために、Python のラムダ関数の力を活用できます。ソート キーの用語の 1 つの前に負符号 (-) を導入すると、その特定のキーのソート順序が効果的に逆になります。例:
sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))
このコードでは、-y[1] により 2 番目のキー (y[1]) のソート順序が逆になり、最初のキー (y[0]. lower() のソート順序が逆になります)。 ) は、大文字と小文字を区別せずに昇順のままです。
追加の例
並べ替え順序のさまざまな組み合わせを使用した追加の例をいくつか示します。
# Reverse both keys sortedList = sorted(myList, key = lambda y: (-y[0].lower(), -y[1])) # Reverse only the first key sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))
以上がPython の `sorted()` 関数で特定のキーのソート順序を逆にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。