ホームページ >バックエンド開発 >Python チュートリアル >`sorted()` 関数の `key` 引数内でラムダ関数を使用して、Python での並べ替えをカスタマイズするにはどうすればよいですか?
sorted() 関数は、特定の基準に従ってリストを並べ替える多用途の方法を提供します。 key 引数を使用すると、匿名ラムダ関数を利用して並べ替えにカスタム ロジックを使用できます。
ラムダ関数は、lambda キーワードを使用して定義された簡潔なインライン関数です。一般的な構文は次のとおりです。
lambda input_variable(s): expression
入力変数を受け取り、式で指定された操作を実行します。
sorted() のコンテキスト内、 key 引数は、各リスト要素を処理し、並べ替えに使用される値を生成する呼び出し可能オブジェクトを受け取ります。この関数を定義する最も一般的な方法は、ラムダを使用することです。構文:
sorted(list, key=lambda element: expression)
例:
sorted([1, 3, 2], key=lambda x: x % 2)
ラムダ関数は、各要素を 2 で割ったときの余りを計算し、基本的にリストの [0, 1, 0] を返します。 [1、3、2]。この変換されたリストは並べ替えに使用され、結果は [1, 3, 2] になります。
key 引数は、値に基づいて元のリストを新しいリストに変換します。ラムダ関数によって返されます。説明しましょう:
例:
sorted([3, 6, 3, 2, 4, 8, 23], key=lambda x: x % 2)
Lambda 関数:
lambda x: x % 2
元のリスト:
[3, 6, 3, 2, 4, 8, 23]
変換されたリスト:
[0, 1, 0, 1, 1, 1, 0] # 0 indicates odd, 1 indicates even
ソートされたリスト:
[3, 3, 23, 6, 2, 4, 8] # Odd numbers first, then even numbers
変換されたリストは基本的に、並べ替えの基準となるプロパティ (この場合は奇数/偶数) を明らかにするマスクです。次に、Sorted() は、変換された値の順序を使用して元のリストを並べ替え、目的の並べ替え順序になります。
ラムダ関数の多用途性により、複雑な並べ替えシナリオが可能になります。たとえば、次のラムダ関数は 2 番目の要素に基づいてタプルのリストを並べ替えます:
sorted([(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)], key=lambda x: x[1])
結果は、各タプルの 2 番目の要素に基づいて並べ替えられたリストになります。
sorted() キー引数のラムダ関数の背後にある構文と概念を使用すると、さまざまなシナリオに合わせて並べ替えロジックを効果的にカスタマイズできます。
以上が`sorted()` 関数の `key` 引数内でラムダ関数を使用して、Python での並べ替えをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。