Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2016, 07:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Entender lambda argumentos - expresiones

lambda es solamente una forma de crear una función sin nombre (lo haces cuando son operaciones cortas de una línea)
Código Python:
Ver original
  1. map(lambda x: (x,1), mi_lista)
es equivalente a
Código Python:
Ver original
  1. def mi_funcion(x):
  2.     return (x, 1)
  3.  
  4. map(mi_funcion, mi_lista)

En ambos casos map() devuelve una nueva lista cuyos elementos son el resultado de aplicar la función a cada elemento de mi_lista, por ejemplo:
Código Python:
Ver original
  1. mi_lista = [1, 2, 3]
  2. map(mi_funcion, mi_lista) #crea la lista [(1, 1), (2, 1), (3, 1)]
En el ejemplo de reduce, la función es equivalente a
Código Python:
Ver original
  1. def mi_funcion(x, y):
  2.     return x + y

Lo que hace reduce() es acumular el resultado de la operación que le pasas:
Código Python:
Ver original
  1. reduce(mi_funcion, mi_lista) # devuelve 6, el resultado de sumar los primeros dos elementos de la lista (1 y 2), y luego al resultado sumarle el elemento siguiente (3)


Espero que sea eso lo que causaba tu duda, si aún no queda claro, pregunta.


Saludos.