THIS IS THE SPANISH VERSION, PLEASE REQUEST THE ENGLISH VERSION AND I WILL CREATE IT.
Para obtener el índice imaginaremos la siguiente lista de ejemplo y la llamaremos numbers
:
numbers = [2, 0, 5, 8, 4]
Como podemos comprobar el mínimo es 0 y el máximo 8 que los podremos encontrar en la posición 1 y 3 de la lista.
Esta será una explicación sencilla basada en los resultados pensada para una persona que no conozca bien Python.
No entraré en detalle sobre el funcionamiento interno de max, enumerate, operator, etc.
Además, como la explicación es la misma para el min
y max
,solo cambian sus valores, usaré el max como ejemplo:
max(enumerate(numbers), key=operator.itemgetter(1))
enumerate(numbers)
: si convertimos el enumerate a una lista obtendremos lo siguiente:[(0, 2), (1, 0), (2, 5), (3, 8), (4, 4)]
.operator.itemgetter(1)
: hacemos que se revise la segunda(1)
en vez de la primera posición(0)
.
Haz una prueba, elimina , key=operator.itemgetter(1)
. y ejecuta el max, devolverá esto:
(4, 4)
¿Se entiende mejor? El resultado es equivalente a hacer max(enumerate(numbers), key=operator.itemgetter(0))
o directamete max(enumerate(numbers))
. Lo que hacemos es decirle a max
:
"revisa la posición 0
en lugar de la posición 1
".
En nuestro ejemplo de numbers
, el primer valor es un 2
. Con el enumerate
obtenemos (0,2)
.
El itemgetter(1)
es como si le dijese al max
: "revisa el 2 en vez del 0".