icon
icon

Python2,3での比較!map関数を使う方法【初心者向け】

初心者向けにPythonでmap関数を使う方法について解説しています。配列の中身にアクセスする関数でPython2,3でそれぞれ書き方が変わります。簡単なサンプルプログラムも書いているので、実際に書きながら理解していきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、Pythonでmap関数を使う方法を解説します。

map関数を使ったサンプルプログラムも実際に書いているので、写経するなど自分で書くとより理解して良いでしょう。Python2と3でそれぞれ書き方が違うので、自身のバージョンを事前に確認してみてください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

Pythonのmapとは

Pythonのmap関数は、配列のすべての要素にアクセスすることが可能です。

配列とは、配列とは、複数の値を1つの変数の中に幾つもの箱に分けて添字で管理できる状態を言います。

mapでは、関数とリストを引数として実行します。

 

Pythonでmapを使う方法

Python2とPython3では文法が異なるので両方の書き方を説明します。

どちらも関数と配列を引数にして処理をした結果を返しています。

Python2のmap文法

map(関数, 配列)

Python3のmap文法

list(map(関数, 配列)

 

[PR] Pythonで挫折しない学習方法を動画で公開中

Pythonでmapを実際に書いてみよう

map関数を使った簡単なプログラムを書いてみます。

Pythonでmap関数を使用するプログラムソースコード

print range(1,5)
print map(lambda x: x * 3, range(1, 5))
print (list(map(lambda x: x * 3, range(1, 5))))

 

表示結果

[1, 2, 3, 4]
[3, 6, 9, 12]
[3, 6, 9, 12]

1行目のprint range(1,5)では、range関数を使用して、指定した要素で開始し、指定した要素-1で終わるオブジェクトを返す関数です。

「range(開始数,終了数)」のようにして使用します。

今回は開始数に1を指定し、終了数に5を指定したので、生成されるlistは1,2,3,4になるような動作をします。

2行目のprint map(lambda x: x * 3, range(1, 5))では、Python2のmap関数の書き方で実行しました。

3行目のprint (list(map(lambda x: x * 3, range(1, 5))))では、Python3のmap関数の書き方で実行しました。

2行目と3行目の処理の内容自体は同じで、1行目のrangeと同様のlistに対してそれぞれの要素を3倍した結果をprint文で表示しています。

lambda関数を使用して無名関数を作成しているのは、mapを使用する際、関数と配列を指定する必要があり、関数にはlambda関数を、配列にはrangeを指定するためです。

処理自体は、x*3の部分で代数演算を行っているようにxを3倍しています。

 

今回は、Pythonでmapを使う方法を解説しました。

入門向けPythonの学習サイトも記事にしているので、学習したい方は参考にしてみてください。

 

また、オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。

独学に限界を感じている方はぜひご覧ください。
 

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバーでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。Wordpressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。

 

小学生がUnityでオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。