目次:
enumerate()
はPythonの組み込み関数で、反復可能オブジェクトをループしながら自動カウンターを使用できます。
Python
enumerate()
関数
enumerate()
関数は次の形式を取ります。
enumerate(iterable, start=0)
この関数は2つの引数を受け入れます。
-
iterable
をサポートするオブジェクト。start
カウンターの開始番号。 この引数はオプションです。 デフォルトでは、カウンターは0から始まります。
enumerate()
は、
__next__()
(またはPython 2では
next()
)メソッドを呼び出して、
__next__()
可能オブジェクトのカウントと現在の値を含むタプルを取得できる列挙オブジェクトを返します。
以下は、
list()
を使用してタプルのリストを作成する方法と、反復可能オブジェクトをループする方法の例です。
directions = list(enumerate(directions)) for index, value in enumerate(directions): print("{}: {}".format(index, value))
0: north 1: east 2: south 3: west
ゼロベースのインデックス付けが機能しない場合は、列挙に別の開始インデックスを選択します。
directions = list(enumerate(directions, 1))
enumerate()
関数は、反復可能なオブジェクトに対して機能します。 反復可能オブジェクトとは、反復可能なコンテナです。 簡単に言えば、
for
ループでループできるオブジェクトを意味
for
ます。 文字列、リスト、タプルなどのPythonの組み込みオブジェクトのほとんどは反復可能です。
enumerate()
でさらにPythonicコードを書く
Pythonの
for
ループは、多くのプログラミング言語で利用可能な従来のCスタイルの
for
ループとはまったく異なります。 Pythonの
for
ループは、他の言語の
foreach
ループと同等です。
イテラブルを処理するときに対応するインデックスを取得するために新しいPython開発者が使用する一般的な手法は、
range(len(…))
パターンを使用するか、カウンターを設定およびインクリメントすることです。
planets = for i in range(len(planets)): print("Planet {}: {}".format(i, planets))
planets = i = 0 for planet in planets: print("Planet {}: {}".format(i, planet)) i += 1
上記のループは、
enumerate()
を使用して、より慣用的な方法で書き換えることができます。
planets = for index, value in enumerate(planets): print("Planet {}: {}".format(index, value))
すべてのメソッドは同じ出力を生成します:
Planet 0: Mercury Planet 1: Venus Planet 2: Earth Planet 3: Mars Planet 4: Jupiter Planet 5: Saturn Planet 6: Uranus Planet 7: Neptune
結論
、Pythonの
enumerate()
関数の使用方法を示しました。