「アルゴリズム×数学」が基礎からしっかり身につく本を読み始めました。
わからないコードが出てくるたびに記事を作って頭を整理しようと思います。
ちなみにコードの説明はnote.nkmk.me を参考にさせて頂いています。
問題ID002に出てきたmap()の使い方を勉強しました。
map()は、第一引数に適用する関数、第二引数にリストなどのイテラブルオブジェクトを指定する。
ちなみに「イテラブルオブジェクト」とは、for文などで要素を1つずつ取り出して処理できるような(通常、複数の要素からなる)オブジェクトを指す用語である。 例えばリスト、辞書、タプルなど。
中身はそのままでは出力されないのでリスト表記にする必要がある。
import math
l = [4, 16, 25]
#このままでは中身は出力されない
print(map(math.sqrt, l))
#リスト表記にするとプリントされる
print(list(map(math.sqrt, l)))
>>[2.0, 4.0, 5.0]
lambda式を利用して任意の処理を適用したい場合は以下のようになる。
l = [3, 6, 9]
print(list(map(lambda x: x/3, l)))
>>[1.0, 2.0, 3.0]
しかしmap()よりもリスト内包表記・ジェネレータ式を使う方がいいとのことです。
参考ウェブサイト
note.nkmk.me
https://note.nkmk.me/python-map-usage/