ホームページ  >  記事  >  バックエンド開発  >  Python リストの差異を計算する場合、ラムダ式とリスト内包表記はどのように比較されますか?

Python リストの差異を計算する場合、ラムダ式とリスト内包表記はどのように比較されますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 09:39:29552ブラウズ

  How Do Lambda Expressions and List Comprehensions Compare When Calculating Differences in Python Lists?

Python リスト内の要素間の差異の検索

リスト内の隣接する要素間の差異の計算は、データ分析と操作における一般的なタスクです。 2 つの一般的なソリューションには、ラムダ式とリスト内包表記が含まれます。

ラムダ式

ラムダ式は、匿名関数を定義するための簡潔な構文を提供します。ラムダ式を使用して差を計算するには、次のコードを使用できます。

<code class="python">differences = list(map(lambda x, y: y - x, t[:-1], t[1:]))</code>

このコードは、リスト t 内の要素を反復処理して、最後の要素を除き、現在の要素と次の要素の差を計算します。ラムダ関数 lambda x, y: y - x を使用します。結果の相違点は相違点リストに保存されます。

リスト内包表記

リスト内包表記は、Python でシーケンスを定義するためのよりコンパクトな方法を提供します。リスト内包表記を使用して相違点のリストを作成するには、次のコードを使用できます。

<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>

このコードは、zip 関数を使用して、リスト t 内の要素 (最後の要素とペアを除く) を反復処理します。それらはタプルとして作成されます。各タプルには、現在の要素と次の要素が含まれます。次に、リスト内包表記は減算演算を各タプルに適用し、差分のリストを生成します。

比較

ラムダ式とリスト内包表記の両方を使用して、差分を計算できます。 Python のリスト。ただし、この特定のタスクでは、リスト内包表記の方が一般的により簡潔で読みやすくなります。また、関数を明示的に定義する必要もなくなり、場合によっては有益です。

リスト t=[1, 3, 6] の場合、以下のコードは、両方の方法を使用して差分を計算する方法を示しています:

<code class="python">print([j-i for i, j in zip(t[:-1], t[1:])])  # list comprehension
print(list(map(lambda x, y: y - x, t[:-1], t[1:])))  # lambda expression</code>

このコードは次の結果を出力します:

[2, 3]
[2, 3]

以上がPython リストの差異を計算する場合、ラムダ式とリスト内包表記はどのように比較されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。