Pythonのmap()
関数は、明示的なforループを使用せずにイテラブルのすべての項目を処理し、変換するための組み込み関数です。これはマッピングとして知られる技術です。
map()
関数は、イテラブルの各項目に変換関数を適用し、それらを新しいイテラブルに変換する必要があるときに便利です。Pythonの関数型プログラミングスタイルをサポートするツールの一つです。
# map()関数の基本的な使用法
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x ** 2, numbers)
print(list(squared)) # 出力: [1, 4, 9, 16, 25]
複数のイテラブルをmap()
に供給する場合、変換関数は、渡されるイテラブルの数と同じ数の引数を取る必要があります。map()
の各反復は、各イテラブルから1つの値を引数として関数に渡します。
# 複数のイテラブルを使用したmap()関数の使用法
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [6, 7, 8, 9, 10]
added = map(lambda x, y: x + y, numbers1, numbers2)
print(list(added)) # 出力: [7, 9, 11, 13, 15]
この知識を持っていれば、プログラムでmap()
関数を効果的に使用することができます。また、リスト内包表記やジェネレータ式を使用して、コードをよりPythonicで読みやすくすることもできます。
# リスト内包表記を使用した例
numbers = [1, 2, 3, 4, 5]
squared = [x ** 2 for x in numbers]
print(squared) # 出力: [1, 4, 9, 16, 25]
# ジェネレータ式を使用した例
numbers = [1, 2, 3, 4, 5]
squared = (x ** 2 for x in numbers)
print(list(squared)) # 出力: [1, 4, 9, 16, 25]