見出し画像

プログラミングのドツボ pythonでlambda(ラムダ式)に入門します。

lambda(ラムダ式)に入門。


無名関数を作るには、
lambdaという書式を用います。(ラムダ式)

lambdaラムダ式とは、関数に名前を付けずに定義するものです。

変数 = lambda 引数1, 引数2 : 式

無名関数のサンプルプログラム

# iを2倍にする無名関数
nibai = lambda i: i * 2

【実行結果】

>>> nibai = lambda i: i * 2
>>> print(nibai(10))
20
>>> print(nibai(100))
200
>>>

lambdaを使うことで、

  • 関数を非常にシンプルに書くことができます。

  • 引数ひきすうに関数を渡すような関数を作ることもできます。


# lambda式を使わずに通常の関数を用いる場合
def sample(i):
    return i*2

print(sample(10))

# lambda式を用いる場合
def sample(func):
    return func(10)

print(sample(lambda i : i*2))


# lambda式を使わずに通常の関数を用いる場合
def func(price,tax):
    return price + (price * tax)
 
payment1 = func(100,0.08)
print(payment1)
 
# lambda式を用いる場合
print((lambda price,tax:price + (price * tax))(100,0.08))

【実行結果】

>>> print((lambda price,tax:price + (price * tax))(100,0.08))
108.0
>>>


lambda式でfor文処理①

l = []
for x in range(10):
    l.append(x**2)
print(l)

# lambda式を用いる場合
l = list(map(lambda x: x**2, range(10)))
print(l)

【実行結果】

>>> l = list(map(lambda x: x**2, range(10)))
>>> print(l)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>

lambda式でfor文処理②

prices = [1000,2500,9800,298000]
paymentList = []
for price in prices:
    paymentList.append(price * 1.08)
 
print(paymentList)
# lambda式を用いる場合
prices = [1000,2500,9800,298000]
paymentList = list(map(lambda price:price * 1.08 , prices))
 
print(paymentList)

【実行結果】

>>> prices = [1000,2500,9800,298000]
>>> paymentList = list(map(lambda price:price * 1.08 , prices))
>>> print(paymentList)
[1080.0, 2700.0, 10584.0, 321840.0]
>>>


lambda式でif文処理

prices = [1000,2500,9800,298000,1980,4980,5800,3980]
priceList = list(filter(lambda price:price > 3000, prices))
priceList.sort()
 
print(priceList)

【実行結果】

>>> prices = [1000,2500,9800,298000,1980,4980,5800,3980]
>>> priceList = list(filter(lambda price:price > 3000, prices))
>>> priceList.sort()
>>> print(priceList)
[3980, 4980, 5800, 9800, 298000]
>>>


lambda式で [for文+if文] 処理

prices = [1000,2500,9800,298000,1980,4980,5800,3980]
paymentList = list(map(lambda price:price * 1.08 , prices))
priceList = list(filter(lambda price:price > 5000, paymentList))
priceList.sort()
print(priceList)

【実行結果】

>>> prices = [1000,2500,9800,298000,1980,4980,5800,3980]
>>> paymentList = list(map(lambda price:price * 1.08 , prices))
>>> priceList = list(filter(lambda price:price > 5000, paymentList))
>>> priceList.sort()
>>> print(priceList)
[5378.400000000001, 6264.0, 10584.0, 321840.0]
>>>


まとめ

pythonのlambda式について、
基本的な使い方と具体例について、
なるべく簡単にやってみました。

lambda式の使い方を忘れないようにこのnoteを書きました。

Javaのラムダ式にはとても苦しんでおります。

うーん……

プログラミングは難しいからやりがいがあります。

思った通りの実行結果が出た時は、
バチっと楽しくなります。

また、pythonと格闘していきたいと思います。


本日はここまでです。

本日もありがとうございました。



もしよろしければ、私にコーヒー一杯分をお恵みいただけましたら、この上ない幸せです。今後も皆様の100円ライター(便利なもの)となれますよう頑張ります。