【Python入門】map関数で反復可能オブジェクトを一括処理する

  • 2026.02.27
       
【Python入門】map関数で反復可能オブジェクトを一括処理する

「リストやタプルなどの要素に対して、何かしらの処理を実行した結果が取得したい」 といった際に、実行可能な処理方法はいくつか存在します。
その中の1つに含まれるのが、map関数です。

今回の記事では、Pythonで map関数を使用する方法について解説していきたいと思います。
そもそも map関数とは何か?といった点から、具体的な使用方法についてなど、詳しく解説していきますのでぜひ参考にしてみてください。

Pythonのmap関数とは?

map関数は、Pythonなどで使用可能な高階関数の1つです。
高階関数とは、他の関数を引数として受け取ったり、戻り値を関数で返す関数のことを指します。

Pythonのmap関数は、リストやタプルなどの反復可能オブジェクト (イテラブル) の要素に対し、引数で受け取った関数の処理を適用した結果を、新たな mapオブジェクト(イテレータ) として返却します。
同等の結果を for文を使って処理する場合と比べて、簡潔で読みやすいコードにまとめることができるのが特徴です。

map関数の使い方

Pythonでmap関数を使用する具体的な方法について見ていきましょう。

基本構文

map関数を使用する際の基本構文は、以下のとおりです。

Python
map(関数, 反復可能オブジェクト)

第一引数には、オブジェクトの要素に適用したい処理を記述した関数を指定します。
自前で定義した関数の他に、既存で用意されている関数を渡すことも勿論可能です。

第二引数には、処理対象とする要素を含む反復可能オブジェクトを指定します。
第三引数以降に続けて指定することで、複数のオブジェクトを同時に受け取ることもできます。

関数の戻り値は、先ほど解説したように mapオブジェクト(イテレータ) を返却します。
mapオブジェクトはそのままでは中身を表示することができないため、for文で各要素にアクセスするか、list関数などで他のデータ型に変換する必要があります。

まずは、簡単な使用例から見てみましょう。

Python
def sample_function(num):
    return num * 10

num_list = [1, 2, 3]
result = map(sample_function, num_list)

# そのままでは表示不可
print(result)

# 各要素にアクセスして表示
for num in result:
  print(num)

# リストに変換して表示
result_list = list(map(sample_function, num_list))
print(result_list)
実行結果
<map object at 0x7fd6532ecf40>
10
20
30
[10, 20, 30]

上記の例のように、一文で完了するような簡単な処理の場合は、lambda式を使用するとより簡潔に記述することができます。

Python
num_list = [1, 2, 3]
result_list = list(map(lambda x: x * 10, num_list))

print(result_list)

リスト内包表記との比較

map関数と同等の処理を行う方法の1つに、リスト内包表記があります。
Pythonで使用可能な記述方法の一種で、map関数と同じように、既存のオブジェクトに処理を加えた結果を新たなオブジェクトとして取得することができます。

リスト内包表記で記述する際の基本構文は、以下のとおりです。

Python
sample_list = [ 処理内容 for 変数 in 反復可能オブジェクト]

処理内容の部分には、式の他に関数を指定することもできます。

Python
# 式の場合
result_list = [i + 10 for i in sample_list]

# 関数の場合
result_list = [sample_func(i) for i in sample_list]

例えば、先ほどのサンプルコードと同じ内容をリスト内包表記を使って記述すると、以下のような形式になります。

Python
num_list = [1, 2, 3]
result_list = [num * 10 for num in num_list]

print(result_list)

map関数に比べて処理内容がより直感的に理解しやすく、上記のような式の記述であれば、処理速度もこちらの方が速い傾向にあります。
一方で、関数を使った処理を行う場合や、イテレータを取得する場合には、map関数を使用する方が速く処理することができます。

状況に応じて、より適した方に使い分けるといいでしょう。

【Python 3.14対応】strictパラメーターの使い方

Python 3.14 より、map関数でも strictパラメータが使用できるようになりました。

Python
result = map(lambda x, y: x + y, num_list1, num_list2, strict=True)

strictパラメータは、一部の関数やクラスで使用可能な、データの厳密性を検証するための機能です。
map関数においては、複数のオブジェクトを引数に渡した場合に、全てのオブジェクトが同じ要素数であるかを検証するパラメータとなります。

まずは、以下のサンプルコードを見てください。

Python
num_list1 = [1, 2, 3]
num_list2 = [4, 5]

result_list = list(map(lambda x, y: x + y, num_list1, num_list2))

print(result_list)
実行結果
[5, 7]

上記の例では、2つのリスト内にある要素の数をそれぞれ足した結果を、新たなリストとして取得しています。

コードの実行結果を見ると、戻り値のリストには要素が2つのみ格納されているのが分かりますね。
このように、複数のオブジェクトの要素数がそれぞれ異なる場合、戻り値のオブジェクトのサイズはもっとも少ない要素数のオブジェクトに合わせて決定されます。

一方、strictパラメータにTrueを指定すると、上記のようなサンプルケースが起きた場合にエラーが発生するようになります。(デフォルトは Falseです)
「要素数が異なる場合は処理を実行させたくない」 といった時に、strictパラメータを指定しておくことで、意図しない挙動が発生するのを防ぐことができます。

取得したい結果内容に応じて、パラメータを指定するか否かを使い分けるといいでしょう。

まとめ

今回は、Pythonで map関数を使用する方法について解説しました。

Pythonに限らず、どのプログラミング言語でも、実行したい処理内容に対して複数の方法がある場合に、もっとも適した処理方法を選ぶことは大切です。
map関数も、for文やリスト内包表記などで同様の結果を得ることはできますが、どの方法が最も使用に適しているかはケースによって様々です。

状況に合わせて柔軟に使い分けできるよう、それぞれの特徴をしっかりと把握しておくようにしましょう。

Pythonの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Programmingカテゴリの最新記事