リストを並べ替えるためのsorted(key=lambda: ...)`の構文を理解する
Pythonのsorted()関数は以下を提供します。リストを並べ替える簡潔な方法。ネストされた要素またはタプルを含む複雑なリストを並べ替える場合、key 引数を使用して並べ替えをカスタマイズできます。
Lambda 関数の構文
key 引数の lambda 関数は、リスト内の各要素のソート基準を導出する方法を指定する匿名関数。その構文は次のとおりです。
lambda input_variable(s): expression
例:
<code class="python">f = lambda x: x + 1 f(10) # Returns 11</code>
sorted() のキー関数
sorted() のコンテキストでは、key=lambda で指定されたキー関数はリスト内の各要素に適用され、その結果は並べ替え順序を決定するために使用されます。ラムダ関数によって返された値は、並べ替えの代理値として機能します。
このメカニズムを使用すると、要素自体ではなく、各要素の特定のプロパティや特性に基づいて元のリストを並べ替えることができます。たとえば、タプルのリストを 2 番目の要素で並べ替えることができます。
<code class="python">mylist = [(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)] sorted(mylist, key=lambda x: x[1]) # Output: [(6, 2, 8), (3, 5, 8), (6, 8, 5), (2, 9, 4)] # Sorted by the second element of each tuple</code>
ブール値と並べ替え
キー関数がブール値を返す場合、並べ替えは値の真実性に基づいて行われます。 True 値を持つ要素は、False 値を持つ要素の前に配置されます。ただし、同じ真の値を持つ要素の元の順序が保持されることに注意してください。
<code class="python">mylist = [3, 6, 3, 2, 4, 8, 23] sorted(mylist, key=lambda x: x % 2 == 0) # Output: [3, 3, 23, 6, 2, 4, 8] # Odd numbers (False) come before even numbers (True) # Even numbers remain in their original order</code>
複雑なデータ構造へのキーの使用
キー関数は次のようにすることができます。特定の属性を抽出して比較するために複雑なデータ構造で使用されます。たとえば、学生を表す辞書のリストを考えてみましょう:
<code class="python">students = [ {'name': 'John', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Bob', 'age': 18}, ]</code>
sorted() 関数を使用して学生を年齢で並べ替えるには、ラムダ関数で key 引数を使用できます:
<code class="python">sorted(students, key=lambda x: x['age'])</code>
このラムダ関数は、各辞書から年齢属性を抽出して返し、年齢に基づいて要素を並べ替えることができます。
以上が`sorted(key=lambda: ...)` 関数は Python でリストをソートするためにどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。