Python の for ループで Lambda 関数を使用する

Isaac Tony 2022年1月23日
Python の for ループで Lambda 関数を使用する

ラムダ関数または無名関数は、名前のない Python 関数です。これらの関数は、Python で通常の関数を定義するために従来から使用されている def キーワードとは対照的に、lambda キーワードを使用して作成されます。

ラムダ関数は通常の関数に比べて小さいだけでなく、いくつかの違いもあります。最も重要なのは、明示的に定義された return ステートメントがないことと、1つの式のみに制限されていることです。

それでも、ラムダ関数は通常の Python 関数と同じように複数の引数を受け入れます。

Python では、Lambda 関数は次​​のように実装できます。

lambda arguments: expressions:

Lambda 関数は、別の関数で引数として使用される関数オブジェクトを作成する必要がある場合に使用されます。

Lambda の能力は、map() などの高階関数と一緒に使用すると特に顕著になります。これらの関数は、他の関数オブジェクトを引数として受け入れます。

さらに、ラムダ関数を使用して、匿名関数を短時間だけ必要とする操作を実行することもできます。この良い例は、for ループと一緒にラムダ関数を使用して、イテラブルのすべての要素に対して特定の操作を実行することです。

以下のプログラムは、for ループを使用して数値のリストを反復処理する方法を示しています。この場合、ラムダ関数がインクリメントとして使用されます。

nums1 = [45, 46, 47, 48, 50]
nums2 = []

for i in nums1:

    def x(i):
        return i + 1

    nums2.append(x(i))
print(nums2)

出力:

[46, 47, 48, 49, 51]

for ループを使用して、タプル、文字列、辞書、セットなどの他のシーケンスを反復処理できます。ラムダ関数は 1つの式しか持てませんが、使用できるデータ型に制限はありません。

以下の例は、for ループとラムダ関数を使用して文字列のリストを反復処理する方法を示しています。

fruits = ["mango", "apple", "melon", "pineapple"]
fruits_upper = []

for fruit in fruits:

    def x(fruit):
        return fruit.upper()

    fruits_upper.append(x(fruit))
print(fruits_upper)

出力:

['MANGO', 'APPLE', 'MELON', 'PINEAPPLE']

Lambda 関数を for ループと一緒に使用して、ラムダオブジェクトのリストを作成できます。これらのオブジェクトを使用して、for ループを使用して反復可能要素の要素に対してアクションを実行できます。

これは、特に、ランタイムエラーを発生させずに同時に変更を加えながら、反復可能なオブジェクトを反復処理することを目的としている場合に役立ちます。

list = [1, 2, 3, 4, 5]


def add_two(x):
    return lambda: x + 2


list = [add_two(i) for i in list]

for element in list:
    print(element())

出力:

3
4
5
6
7
著者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

関連記事 - Python Lambda Function

関連記事 - Python Loop