`sorted(key=lambda: ...)` 関数は Python でリストをソートするためにどのように機能しますか?

Patricia Arquette
リリース: 2024-10-26 09:44:29
オリジナル
308 人が閲覧しました

How does the `sorted(key=lambda: ...)` function work for sorting lists in Python?

リストを並べ替えるためのsorted(key=lambda: ...)`の構文を理解する

Pythonのsorted()関数は以下を提供します。リストを並べ替える簡潔な方法。ネストされた要素またはタプルを含む複雑なリストを並べ替える場合、key 引数を使用して並べ替えをカスタマイズできます。

Lambda 関数の構文

key 引数の lambda 関数は、リスト内の各要素のソート基準を導出する方法を指定する匿名関数。その構文は次のとおりです。

lambda input_variable(s): expression
ログイン後にコピー
  • 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!