Hablemos de la última reducción, y esta es un poco avanzada y puede ser un poco difícil de entender al
principio, pero es bueno saber que existe y puedes aprender más sobre ella practicándola y
leyendo alguna documentación sobre tu propio.
Ahora, reducir no viene como parte de la función incorporada de Python.
Para que podamos usar reduce, tenemos que hacer algo como esto.
Ahora, nunca ha visto esto antes y esto es algo a lo que llegaremos en la sección de módulos
del curso.
Pero esencialmente lo que está sucediendo aquí es cuando descargamos Python Interpreter y el paquete Python, en nuestro
caso, este Reppel ya lo hace por nosotros.
Podemos importar algo de estas fotos.
Y las herramientas funcionales son lo que llamamos un cinturón de herramientas que podemos usar para herramientas funcionales que vienen con la instalación
de Python.
Y a partir de ahí, hay una función específica que podemos importar.
Entonces estoy diciendo, hey, de las herramientas de función de este cinturón de herramientas, quiero que importe la función de reducción para
que podamos usarla en nuestro código nuevamente, algo que cubriremos más adelante en el curso.
Entonces, por ahora, simplemente copie y pegue esta línea.
A continuación, eliminemos algunos de nuestra lista y usemos reducir.
Ahora, con Reducir, vamos a necesitar algunas cosas.
Primero.
Necesitamos la función.
Y luego necesitamos la secuencia o los datos.
Entonces, ¿cuál será la función? En primer lugar, nuestros datos serán nuestra mi lista, así que
voy a decir mi lista y la función reducida nos permite hacer algo interesante.
Puedo darle, digamos, una función.
Y esta función, la llamaremos acumulador.
Y el acumulador toma dos parámetros, y recuerda, este lo va a llamar reduce, entonces reduce se va a
encargar de dar estos dos parámetros a partir de los datos que le damos, que
es mi lista.
El primer parámetro va a ser lo que llamamos acumulación, o en mi caso, el Axi.
Y luego aquí va a estar el artículo.
Ahora, lo que se pone realmente interesante es que cuando pasemos por primera vez mi lista de la reducción, obtendremos el
primer elemento.
El primer elemento estará en este parámetro.
Sin embargo, ¿qué es este axi inicialmente?
Bueno, si quito los corchetes aquí.
Y así reduces ves que tenemos la función.
La secuencia, que en nuestro caso será nuestra lista y luego la inicial y la inicial es lo que va a ser el
acumulador.
Entonces, una vez más, digamos que vamos a tener la función de acumulador que aún no vamos a
llamar.
Reducir va a hacer eso por nosotros.
Le voy a dar la lista.
O los datos sobre los que queremos iterar y luego les daré un valor inicial de cero.
Entonces tenemos tres.
Parámetros aquí o tres argumentos que le demos.
Permítanme cerrar los corchetes donde lo agrandan un poco y asegurarme de que puedo deletrear.
Ahora, aquí, el primer elemento será el primer elemento de mi lista.
Y luego el acumulador se pondrá por defecto en cero si no le damos nada o, en nuestro caso, hemos dicho
que el acumulador va a ser cero.
Entonces, lo primero que haremos es devolver el acumulador más el artículo.
Bien, repasemos esto uno por uno.
De hecho, voy a imprimir aquí el acumulador y el elemento para que podamos ver y luego ejecutaré
este código.
La línea 15 en el objeto no es iterable.
Y esto es un poco complicado, pero en realidad ya no necesitamos la lista porque reducir va a hacer algo
interesante para nosotros.
Así que eliminemos esto por ahora y devolvamos lo que la reducción nos dé.
Y la impresión si hago clic, corro.
Mira eso.
Muy bien, ¿qué acaba de pasar?
Echemos un vistazo.
Reducir.
Nos permite reducir algo, algún tipo de valor del iterable que le damos.
Así que vayamos paso a paso.
Tenemos mi lista y mi lista se aplicará al acumulador a través de reducido.
El acumulador se va a llevar mi lista.
Y lo primero que va a hacer en la primera pasada es decir, oye, ¿cuál va a ser mi
acumulador?
Lo pondré en cero.
Entonces, el primer paso a través del acumulador será cero.
Un elemento va a ser uno, que es lo que vemos aquí.
Y lo vamos a sumar cero más uno.
Así que ahora hemos devuelto uno.
Ahora, el segundo pase a.
¿Qué va a pasar la segunda pasada por el acumulador va a ser qué, esta vuelta?
Entonces, el próximo paso a lo que sea que se devuelva se completará en el acumulador, por lo que en
nuestro caso, cero más uno será uno.
Un elemento será dos, uno más dos será tres, por lo que uno más dos es igual a tres.
Entonces, la próxima vez que el acumulador será tres.
Y mientras pasamos, también habrá tres, como pueden ver aquí.
Y tres más tres son seis.
Acabamos de acumular todos estos valores y devolvimos uno solo.
Número seis, hemos reducido nuestra lista a algún tipo de datos que hemos manipulado usando en nuestro caso,
acumulador.
Pero podría haber hecho lo que quisiera aquí.
Entonces, si, por ejemplo, cambio esto para que no sea igual a 10, ¿qué crees que pasará si hago clic en ejecutar?
Obtengo 16 porque comencé mi acumulador inicial con 10, entonces eran 10 más uno, y así sucesivamente.
Ahora se reduce realmente, muy poderoso porque puedes hacer muchas cosas con él.
Es realmente muy flexible.
Y, de hecho, debajo del capó, funciones como Filtro de mapa utilizan esta reducción debajo del capó para que pueda
crear su propio mapa y función de filtro utilizando reducir.
Nuevamente, reducir es un poco difícil de entender al principio, y se necesita un poco de práctica para usarlo
realmente.
Pero es una de esas cosas que a los programadores avanzados les encanta, y verás más y más a lo largo
de tu carrera a medida que vayas mejorando cada vez más.
Te veo en el proximo.
Adiós.