¿Cómo obtener el índice del elemento iterador actual en un bucle?

¿Cómo obtener el índice del elemento actual de un iterador de Python en un bucle?

Por ejemplo, cuando se utiliza la función de finditer expresiones regulares que devuelve un iterador, cómo puede acceder al índice del iterador en un bucle.

 for item in re.finditer(pattern, text): # How to obtain the index of the "item" 

Los iteradores no fueron diseñados para ser indexados (recuerde que producen sus artículos perezosamente).

En su lugar, puede utilizar enumerate para numerar los elementos a medida que se producen:

 for index, match in enumerate(it): 

A continuación se muestra una demostración:

 >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it): ... print(index, item) ... 0 10 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 >>> 

Tenga en cuenta que también puede especificar un número para iniciar el conteo en:

 >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it, 1): # Start counting at 1 instead of 0 ... print(index, item) ... 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 18 10 19 >>>