`sorted()` 関数の `key` 引数内でラムダ関数を使用して、Python での並べ替えをカスタマイズするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-30 08:34:02
オリジナル
1046 人が閲覧しました

How can I use lambda functions within the `sorted()` function's `key` argument to customize sorting in Python?

Sorted のラムダキー構文を理解する

sorted() 関数は、特定の基準に従ってリストを並べ替える多用途の方法を提供します。 key 引数を使用すると、匿名ラムダ関数を利用して並べ替えにカスタム ロジックを使用できます。

ラムダ構文の説明

ラムダ関数は、lambda キーワードを使用して定義された簡潔なインライン関数です。一般的な構文は次のとおりです。

lambda input_variable(s): expression
ログイン後にコピー

入力変数を受け取り、式で指定された操作を実行します。

キー引数と Lambda

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() は、変換された値の順序を使用して元のリストを並べ替え、目的の並べ替え順序になります。

複雑な並べ替えに Lambda を使用する

ラムダ関数の多用途性により、複雑な並べ替えシナリオが可能になります。たとえば、次のラムダ関数は 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート