2021年11月13日土曜日

【組み込み関数】mapによるリスト等の全要素への同一処理

 組み込み関数mapを使うとリスト等のイテラブルオブジェクトの全要素に対して同一処理をすることができる。




1. mapの書式

 mapの書式は以下の通り。
functionに処理する関数、iterableに処理するイテラブルオブジェクトを指定する。戻り値はイテレータになるためlist等でリテラブルオブジェクトに変換する。
functionにはユーザー定義関数もしくは無名関数lambdaを指定する。

map(function, iterable, ...)


2. 使用例

 リストaの全要素を二乗した新しいリストsqを作成する例。mapを使わずforで処理する場合。

a = [3, 5, 2, 8]
sq = []

for i in a:
    sq.append(i*i)
    
print(sq)

実行結果

[9, 25, 4, 64]


 二乗するユーザー定義関数squareを作りmapで呼び出してリストaを処理する例。

a = [3, 5, 2, 8]

def square(i):
    return i*i
    
sq = list(map(square, a))
print(sq)

実行結果

[9, 25, 4, 64]


 無名関数lambdamapの処理内容(ここでは要素の二乗)を指定する例。
簡潔に記述できるので、処理内容がその場限りでdefにより関数を作る必要が無ければlambdaを使う方が良い。

a = [3, 5, 2, 8]

sq = list(map(lambda i: i * i, a))
print(sq)

実行結果

[9, 25, 4, 64]


3. リファレンス

Python 標準ライブラリ > 組み込み関数 > map(function, iterable, ...)

使用したバージョン:Python 3.8.8

0 件のコメント:

コメントを投稿