式の形で記述できる
こんにちは、徳です。
デジタル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演算子はその文が書かれた時のみ呼び出す
ことができます。
関数なのに何回も呼び出せないのでは、意味がないじゃん!
と思いませんでしたか?
その通りです!
関数とは、
同じ処理を一つにまとめて何回も簡単に使えるようにする
ものです。
何回も呼び出せないのでは、意味がないですよね。
しかし、その処理文にさえ来れば呼び出せるのです。
つまり、
主に繰り返し文の時に使用する
定義に仕方です。
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文内
で使われます。
最後まで読んでいただき、ありがとうございました。
コメント