逆順のキーを含む、複数のキーを持つリストのソート
タプルのリストを操作する場合、ソートが必要になる場合があります。それらは複数の基準に基づいており、そのうちの 1 つは逆の順序である必要があります。この記事では、この課題に対処し、2 つのキーでリストをソートする Python のアプローチを提供します。1 つは昇順で、もう 1 つは降順でソートされます。
問題の理解
myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)] のようなタプルのリストを考えてみましょう。このリストを 2 つのキーで並べ替えるということは、各タプルの最初と 2 番目の要素の両方に基づいてリストを整理することを意味します。ソート基準を指定するカスタム キー関数を渡して、sorted() 関数を使用してリストを並べ替えることができます。
<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))</code>
このコードは、両方のキーの昇順でリストを並べ替えます。最初のキーを降順で並べ替えるには、次のコードを使用できます:
<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))</code>
ただし、このコードは両方のキーを降順で並べ替えます。最初のキーのみを降順でソートし、2 番目のキーを昇順でソートするには、次のコードを使用できます。
<code class="python">sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))</code>
このコードは、タプルを最初のキーで逆アルファベット順 (降順) にソートします。
例
この並べ替えメソッドを指定されたリスト myList に適用してみましょう:
<code class="python">myList = [('Ele1A', 'Ele2A'), ('Ele1B', 'Ele2B'), ('Ele1C', 'Ele2C')] sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1])) # Print the sorted list print(sortedList)</code>
出力:
[('Ele1C', 'Ele2C'), ('Ele1B', 'Ele2B'), ('Ele1A', 'Ele2A')]
見てわかるように、リストは最初のキーで逆アルファベット順に、2 番目のキーでアルファベット順にソートされており、問題の要件を満たしています。
以上が1 つのキーを持つタプルのリストを逆順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。