#ラムダ式とMapとオブジェクト化についてここで整理しておく。
・まず、簡単な関数で考える。
#簡単な関数(その1)
def calc(a,b): #calc関数に二つの引数aとbを渡す
return a*b #aとbを掛け合わせた後、返す。
calc(3,10)
>>>30
・上記の関数について、lambdaでは以下のように書き換えることができる。
#lambda関数(無名関数)
(lambda a,b:a*b)(3,10)
>>>30
・もう一つ簡単な関数を用意する。
#簡単な関数(その2)
def calc(x):
return x*2
for num in [1,2,3,4]:
print(calc(num))
>>>2
>>>4
>>>6
>>>8
・上記の関数について、lambdaもしくはmapを用いて以下のように書き換えることができる。
#map関数
list(map(calc,[1,2,3,4]))
#map関数とlambdaの組み合わせ
list(map(lambda x:x*2,[1,2,3,4]))
>>>[2,4,6,8]
・次に、クラスとそのオブジェクト化(インスタンス化)について整理しておこうと思う。
#クラスの作成
class calc:
#__init__は特殊メソッドの一つでほかの言語でコンストラクタに該当する。
#コンストラクタとはオブジェクト化と同時、初期化されることをいう
#selfはあまり意識する必要はない。python特有の書き方であることを覚えておくとよい。
def __init__(self,x,y):
self.x=x
self.y=y
#複数のメソッドを用意した。
#メソッド1
def add(self,a,b):
return a+b
#メソッド2
def add_another(self):
return self.x+self.y
#メソッド3
def mutli(self,a,b):
return a*b
#値を渡したうえで、オブジェクト化
a=calc(3,4)
#それぞれのメソッドを呼び出す
a.add_another(),a.add(2,12),a.mutli(1,9)
>>>(7, 14, 9)
今回は、map,lambda,クラス・オブジェクト化について記事としてまとめた。
今後、pythonのテクニックについて、いろいろとまとめていきたい。