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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,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人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

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