Python「lambda演算子 ~関数の簡単な記述方法~」

Python

式の形で記述できる

こんにちは、徳です。

デジタルDIYができるようコーディング・プログラミング・画像加工・動画編集などを本やYouTubeで勉強しています。

現在は初心者なので、とにかくゆっくり進んでいくと思います。

また、「間違っていること」や「こうした方が良いよ」などがあれば、コメントなどしていただけたら幸いです。

では、いきましょう!

Python

今回は、

lambda演算子を使って簡単に関数を記述する方法

です。

関数を書くとき、

たった数行の処理を関数にするのは面倒くさい

と思うことありませんか?

lambda演算子を使用すると、

関数名もつけずに簡単に定義する

ことができます。

徳

関数名をつけないため、for文の繰り返し内でのみ使用する関数の時に使いましょう。

それではよろしくお願いします。

lambda演算子

lambda演算子とは

lambda演算子とは、

関数名をつけずに簡単に関数を定義できる

機能です。

どんなことができるの?

lambda演算子では、

関数を定義する

ことができます。

徳

実は、関数の定義の仕方はdef文だけではありません。

lambda演算子もその一つです。

def文での定義との違いは?

関数の定義というと、

def文

が思い浮かびます。

def 関数名 (引数1 , 引数2 , ・・・):
     処理文1
     処理文2
     ・・・
     return 戻り値
徳

こちらですね。

違いは、

lambda演算子def文
関数名いらない必要
向いている処理for文内の短い簡単な処理その他
定義の仕方簡単普通

などがあります。

lambda演算子では関数名入らない

lambda演算子では、関数名を指定する必要がありません

徳

名前のない関数のため、無名関数といいます。

しかし、関数名がないということは、

関数名を使って呼び出すこともできない

ということです。

徳

呼び出す関数名がないため、呼び出しようがないですよね。

lambda演算子で定義した関数は、

その文が書かれた時のみ

呼び出せます。

つまり、定義した文以外では呼び出すことはできません。

向いている処理はfor文内の短い処理など

先ほども書きましたが、

lambda演算子はその文が書かれた時のみ呼び出す

ことができます。

Aくん
Aくん

関数なのに何回も呼び出せないのでは、意味がないじゃん!

と思いませんでしたか?

その通りです!

関数とは、

同じ処理を一つにまとめて何回も簡単に使えるようにする

ものです。

徳

何回も呼び出せないのでは、意味がないですよね。

しかし、その処理文にさえ来れば呼び出せるのです。

つまり、

主に繰り返し文の時に使用する

定義に仕方です。

for 変数 in map ( 関数 , リストなど )

この関数の部分に入れることで、

条件にあっている間、何回も無名関数を使用する

ことができます。

定義の仕方

lambda演算子は、

定義の仕方は簡単

です。

書き方は、

lambda 引数 : 式

です。

まず、関数名を指定しなくていいです。

また、for文内に入れるため、その結果がそのまま戻り値になります。

そのため、

return文も指定する必要がない

ということです。

どんな時に使用するの?

lambda演算子は、

  • 文字列の前後にマークをつける
  • 簡単な計算をする

ときなどに使用します。

主に、for文内で使われるため、何度も繰り返す時に使用します。

徳

しかし、実際にはfor文内以外でも定義できます。

その場合、1度しか呼び出されせんが。

書き方

定義に仕方は、

lambda 引数 : 式

となります。

しかし、実際には、

for 変数 in map ( lambda 引数 : 式 , リスト名など ):
      処理文1
      処理文2

と書くことが多いです。

徳

つまり、map関数の引数に使用するということですね。

リスト内文字列の前後に “<” , “>”をつける

shikoku_local = [ "愛媛" , "香川" ,  "高知" , "徳島" ]

for shikoku in map ( lambda s : "<" + str(s) + ">" , shikoku_local):
      print ( shikoku )

掛け算をする

num = [100 , 200 , 300]

for numbers in map ( lambda x : x * 2 , num ) :
      print ( numbers )

まとめ

今回は、

lambda演算子

について紹介させていただきました。

lambda演算子は、

関数名なし簡単に関数を定義する

ために使用します。

関数名がないため、処理の順番が来た時のみ呼び出すことができます。

よって、

主にfor文内

で使われます。

最後まで読んでいただき、ありがとうございました。

コメント

タイトルとURLをコピーしました