liquidjumper Python Python3で配列の要素とインデックスを同時に取得する方法

Python3で配列の要素とインデックスを同時に取得する方法

python_enumerate_index_value_topimage

Pythonで配列から要素を取り出す場合どうしてますか?

単純に要素を取り出すだけなら、直接for文の変数に代入するだけで良いし

list_month = ["January", "February", "March", "April"]

for i in list_month: 
    print(i)


インデックス(カウンタ)で回したかったら、len関数で配列に収まっている要素数を取得して使う方法もあるでしょう。

list_month = ["January", "February", "March", "April"]

for i in range(len(list_month)):
    print("{}月は英語で{}" .format(i+1, list_month[i]))


上記2つの方法の場合、要素だけを取り出すか、それともインデックスを使うかの何方かになりますが、

もし配列から要素とインデックスを同時に取り出す事ができれば、もっとシンプルに書けて使い勝手も良くなりそうですよね。


■ 配列から要素とインデックスを同時に取り出せる関数


enumerate関数


Python3の enumerate関数 を使うと、配列から要素とインデックスを同時に取り出せます。

本記事では、Python3で配列から要素とインデックスを同時に取得できる enumerate関数 の使い方を紹介します。


参考:https://docs.python.org/ja/3/library/functions.html#enumerate


Python 3の enumerate関数の基本動作

enumerate関数は、配列のインデックス(カウント)と要素をそれぞれ1つずつ持つタプルを返します。

list_month = ["January", "February", "March", "April"]

print(enumerate(list_month)) #オブジェクトを返します。

print(list(enumerate(list_month))) #list関数でリスト化します。


インデックス(カウント)と要素をそれぞれ1つずつ持つタプルをまとめたリストが出力されました。

<enumerate object at 0x7fcdbd40dc40>
[(0, 'January'), (1, 'February'), (2, 'March'), (3, 'April')]

for文で配列の要素とインデックスを同時に取り出す

では、enumerate関数の基本動作を踏まえて、for文で処理して見ましょう。

list_month = ["January", "February", "March", "April"]

for i in enumerate(list_month):
    print(i)


配列から取り出されたインデックス(カウント)と、要素を持つタプルが変数[ i ]に代入され、順番に出力されました。

(0, 'January')
(1, 'February')
(2, 'March')
(3, 'April')

インデックスと要素それぞれを変数に代入する

前の例では、変数[ i ] 1つに、インデックスと要素を持つタプルが代入されました。

代入する変数をインデックス用と要素用の2つにすれば、インデックスと要素をそれぞれ分けて取り出す事ができます。

変数を、インデックス用[ index ]と要素用[ value ] の2つ用意しました。

list_month = ["January", "February", "March", "April"]

for index, value in enumerate(list_month):
    print(index, value)


変数[ index ]には、0から始まるインデックス番号、変数[ value ]には要素が代入され出力されました。

0 January
1 February
2 March
3 April

開始のインデックスを指定できる

デフォルトでは、インデックス(カウント)は[ 0 ]から始まりますが、enumerate関数の引数「start」を使うと、開始のカウントを任意に指定する事ができます。

enumerate関数の引数「start」で開始のカウント[ 1 ]を指定しました。

list_month = ["January", "February", "March", "April"]

for index, value in enumerate(list_month ,start = 1): 
    print(f"{index}月は英語で{value}") #f文字列で index と value の値に置き換え


インデックス(カウント)と要素を同時に取り出せるので、このような文字列も簡単に出力できます。

1月は英語でJanuary
2月は英語でFebruary
3月は英語でMarch
4月は英語でApril

まとめ:Python 3で配列から要素とインデックスを同時に取得する場合はenumerate関数

Python3で配列から要素とインデックスを同時に取得できる enumerate関数 の使い方を紹介しました。

enumerate関数 を使うと配列から要素とインデックスを同時に処理できるので、シンプルなコードを書くことができて、使い勝手も良くなります。

list_month = ["January", "February", "March", "April"]

for index, value in enumerate(list_month): 
    print(index, value)


Pythonにはこれ以外にも便利な関数がたくさんあります。

同じ実行結果だけを求めるだけなら、それらの関数を使う必要は無いと思いますが、保守管理を考慮すると、きれいなコードで見やすい方が良いのは当然。

本記事で紹介した関数を知っていると、コーディングの労力にも違いを感じると思うので、ぜひ試してみてください。








 TechAcademy [テックアカデミー] は、選抜された現役エンジニアから学べるオンライン・プログラミングスクールです。

 自宅からでもWeb制作・プログラミング・アプリ開発などが習得できるさまざまなコースをラインナップ。

 非エンジニアでスキルを磨きたい方から、フリーランス、就職/転職を目指す方まで、専属のメンターがサポート。

 最近は副業ブームもありはじめての副業コース が人気です。






SAMURAI ENGINEER Plus+

𝕏 ( 旧Twitter ) Facebook Pocket LINE はてブ

おすすめの関連記事



あわせてよく読まれている記事