![見出し画像](https://assets.st-note.com/production/uploads/images/95313933/rectangle_large_type_2_d84630e4364f0a7af39204baa9d48757.png?width=1200)
プログラミングのドツボ 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円ライター(便利なもの)となれますよう頑張ります。