\

Pythonには、シーケンス(リストやタプルなど)の各要素に関数を適用するためのmap()関数があります。この関数は、反復処理を簡潔に記述するために使用されます。

map関数の基本的な使い方

map()関数の基本的な使い方は次の通りです。

map(function, iterable)

ここで、
functionは適用する関数
iterableは適用する要素のシーケンス(リストやタプルなど)

戻り値はイテレータオブジェクトです。

例1: 数値の2倍を計算する

numbers = [1, 2, 3, 4, 5]
doubled_numbers = map(lambda x: x * 2, numbers)
print(list(doubled_numbers))  # [2, 4, 6, 8, 10]

この例では、numbersリストの各要素に対してラムダ式(lambda x: x * 2)を適用しています。

例2: 文字列の長さを計算する

names = ["Alice", "Bob", "Charlie"]
name_lengths = map(len, names)
print(tuple(name_lengths))  # (5, 3, 7)

この例では、namesリストの各要素に対して組み込み関数のlen()を適用しています。

例3: 複数のシーケンスを組み合わせる

numbers = [1, 2, 3]
squares = [4, 5, 6]
sums = map(lambda x, y: x + y, numbers, squares)
print(list(sums))  # [5, 7, 9]

この例では、numberssquaresという2つのリストがあります。map()関数には、2つの引数を受け取るラムダ式(lambda x, y: x + y)が使用されています。

map関数とlistの違い

map()関数は、内容を取り出したところまでしか、第一引数の関数が評価されないため、多少演算量の差はありますが、listの方が上位互換でトラブルも少ないと思うので、基本的にlistに変換するパターンを使えばいいと思います。

まとめ

この記事では、map()関数を使ってシーケンスから各要素に処理を施したリストを生成する方法について解説しました。大きなサイズの処理などにも応用できて、プログラムがシンプルになるのでぜひ使ってみることをオススメします。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です