Pythonの組み込み関数であるmap()
は、指定された関数をシーケンス(リストやタプルなど)の各要素に適用し、新しいイテレータを生成します。この関数は、反復処理を簡潔に記述するために使用されます。
# 数値を2倍する関数を定義
def double(x):
return 2 * x
# 1~9の数値をリストに格納する
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 各要素を2倍にする
doubled_numbers = map(double, numbers)
# イテレータをリストに変換して結果を表示
print(list(doubled_numbers)) # [2, 4, 6, 8, 10, 12, 14, 16, 18]
上記の例では、double(x)
という関数を定義し、この関数をmap()
関数に渡しています。map()
関数は、numbers
リストの各要素に対してdouble(x)
関数を適用し、その結果を含む新しいイテレータオブジェクトを生成します。最後に、イテレータオブジェクトをリストに変換して結果を表示しています。
このように、map()
関数は高階関数と組み合わせて使用することで、要素に対して動的な変換を行うことができます。新しい関数を作成して、その関数をmap()
関数に渡すことで、より柔軟な処理が可能となります。
また、map()
関数は複数のシーケンスを組み合わせて処理する際にも便利です。対応する要素同士を1つずつ取り出して関数に渡し、結果を新しいイテレータオブジェクトとして返します。
# 2つのリストを定義
numbers = [1, 2, 3]
squares = [4, 5, 6]
# 2つのリストの要素を組み合わせて計算
sums = map(lambda x, y: x + y, numbers, squares)
# イテレータをリストに変換して結果を表示
print(list(sums)) # [5, 7, 9]
上記の例では、numbers
とsquares
という2つのリストがあります。map()
関数には、2つの引数を受け取るラムダ式(lambda x, y: x + y
)が使用されています。このラムダ式は、numbers
とsquares
の対応する要素を足し合わせる処理を表しています。map()
関数は、各要素の対応する要素を足し合わせた結果を含む新しいイテレータオブジェクトを生成します。最後に、イテレータオブジェクトをリストに変換して結果を表示しています。
以上がPythonのmap()
関数の基本的な使い方となります。この関数を理解し、適切に使用することで、Pythonプログラミングの幅が広がります。