¿Cómo obtener el índice y el elemento de la lista simultáneamente en Python?

Me encuentro frecuentemente escribiendo código como este:

k = 0 for i in mylist: # y[k] = some function of i k += 1 

En cambio, podría hacer

 for k in range(K): # y[k] = some function of mylist[k] 

Pero eso no parece “pythonico”. (Ya sabes … indexación. ¡Ick!) ¿Hay alguna syntax que me permita extraer tanto el índice (k) como el elemento (i) simultáneamente usando un bucle, una lista de comprensión o un generador? La tarea está en la computación científica, así que hay muchas cosas en el cuerpo del bucle, por lo que creo que una comprensión de la lista probablemente no sea lo suficientemente poderosa por sí sola.

También doy la bienvenida a consejos sobre conceptos relacionados, que podría no tener en cuenta. Gracias.

Puedes usar enumerate :

 for k,i in enumerate(mylist): #do something with index k #do something with element i 

Más información sobre técnicas de looping .

Editar:
Como se señala en los comentarios, usando otros nombres de variables como

 for i, item in enumerate(mylist): 

facilita la lectura y la comprensión de su código a largo plazo. Normalmente, debe usar i , j , k para los números y nombres de variables significativos para describir los elementos de una lista.
Es decir, si tiene, por ejemplo, una lista de libros y una iteración sobre ella, debería nombrar el book variables.

enumerate es la respuesta:

 for index, element in enumerate(iterable): #work with index and element