14
12

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 5 years have passed since last update.

Python ラムダ式 map

Last updated at Posted at 2019-07-23

#Reference
map関数について調べる際、以下のサイトを参照しました。
map()関数とfilter()関数
lambdaについては以下に解説が記載されています。
Pythonのlambdaって分かりやすい
#map,lambda
pythonを勉強中、mapとlambdaなるものが出てきた。
いまいちラムダ式が分かっていないので自分用にまとめ。

jupyter notebook でShift + tab でドキュメントを確認すると以下のような説明。

#jupyter notebook より引用

Init signature: map(self, /, *args, **kwargs)
Docstring:     
map(func, *iterables) --> map object

調べてみると、map関数とはイテラブルオブジェクトの各要素を関数に渡して処理する関数らしい。
返り値としてmapオブジェクトが返ってくる。

  • イテラブルオブジェクトとは...文字列"abc"、リスト[a,b,c]、タプル(a,b,c)のように、繰り返しの処理で1つずつ要素を取り出せるオブジェクトのこと。
def function(x):
    ans = x * 2
    return ans

nums = [1,2,3,4,5]

result = map(function, nums)
print(result)

#結果
<map object at 0x110599860>

試しにトライするとmapオブジェクトが返ってきてしまった。
listに変換すると上手くできていることが分かった。


print(list(result))

#結果
[2, 4, 6, 8, 10]

次に、maplambdaを組み合わせて用いる。
同じ結果を得ることができた。lambda式を用いるとだいぶすっきりと書ける。

nums = [1,2,3,4,5]
result2 = map(lambda x:  x*2 ,nums)
print(list(result2))

#結果
[2, 4, 6, 8, 10]

文字の入れ替えにも挑戦してみた。
replace関数を使うことで、 /,に置換した。
csvファイルのヘッダー部分の編集等で使用できそう。

timelist = ["year/month/day/day of the week/time"]
result3 = map(lambda y: y.replace("/", ",") , timelist)
print(list(result3))

#結果
['year,month,day,day of the week,time']

※引用・参照部分に問題がございましたら、ご連絡をお願いいたします。

14
12
2

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
14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?