ホームページ >バックエンド開発 >Python チュートリアル >Python の「enumerate()」関数はどのように反復可能なトラバーサルを強化しますか?
Python の enumerate() 関数は、反復可能な探索に少しの啓発を加える謎めいた宝石です。正確には何をするのでしょうか?その概念とアプリケーションを詳しく見てみましょう。
本質的に、enumerate() は反復的なビューティファイアーです。これは反復可能オブジェクトにカウンターを導入し、各要素をカウンターと要素を含むタプルに変換します。この機能強化により、反復可能オブジェクトの走査を監視するための明確かつ簡潔な方法が提供され、ループの冒険に数値的な次元が提供されます。
次の簡単な例を考えてみましょう:
elements = ('foo', 'bar', 'baz') for elem in elements: print(elem)
このコードはそれぞれを出力します。タプルの要素を順番に:
foo bar baz
ただし、 enumerate() 関数を呼び出すと、私たちのループは新しい形式になります:
elements = ('foo', 'bar', 'baz') for count, elem in enumerate(elements): print(count, elem)
今度は、出力により要素自体だけでなく、対応するカウンターも明らかになります:
0 foo 1 bar 2 baz
各タプルがどのように 2 つの変数に展開されるかに注目してください。 : row_number (カウンター) と row (要素)。
デフォルトでは、enumerate() は 0 からカウントを開始します。ただし、2 番目の整数引数を指定することで、開始番号を柔軟に指定できます。例:
for count, elem in enumerate(elements, 42): print(count, elem)
このコードは次のように出力されます:
42 foo 43 bar 44 baz
Python の生来の enumerate() 関数は細かく調整されたマシンですが、冒険したい場合は、再実行することもできます。 - itertools.count() または手動カウントジェネレーターを使用して実装しますfunction:
from itertools import count def enumerate(it, start=0): return zip(count(start), it)
または
def enumerate(it, start=0): count = start for elem in it: yield (count, elem) count += 1
これらのカスタム実装は Python のアプローチを反映しており、ループ処理に多用途のツールを提供します。
以上がPython の「enumerate()」関数はどのように反復可能なトラバーサルを強化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。