1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

python(mapとlambdaとオブジェクト化について)

Last updated at Posted at 2021-09-09

#ラムダ式と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のテクニックについて、いろいろとまとめていきたい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?