84 lines
2.4 KiB
Markdown
84 lines
2.4 KiB
Markdown
## lambda
|
|
|
|
Función lambda es una función pequeña y anónima, puede tomar cualquier
|
|
cantidad de argumentos, pero solo puede contener una expresión
|
|
( lamdba argumentos: expresión )
|
|
|
|
Ejemplos:
|
|
- [Funciónes varias](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#funci%C3%B3n-que-recibe-un-n%C3%BAmero-y-retorna-este-mas-10)
|
|
- [Función que ordena](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#ordenar)
|
|
- [Lambda y map](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#map-funci%C3%B3n-secuencia)
|
|
- [Lambda y filter](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#filter-funci%C3%B3n-secuencia)
|
|
- [Lambda y reduce](https://gitea.kickto.net/devfzn/Apuntes_Python/src/branch/master/02_conceptos/08_lambda_functions#reduce-funci%C3%B3n-secuencia)
|
|
|
|
### Función que recibe un número y retorna este mas 10
|
|
```python
|
|
add10 = lambda x: x+10
|
|
add10(5) # 15
|
|
|
|
def add10_func(x):
|
|
return x + 10
|
|
```
|
|
|
|
### Función que recibe dos números y retorna el producto de estos
|
|
```python
|
|
mult = lambda x,y: x*y
|
|
mult(5, 3) # 15
|
|
|
|
def mult_func(x, y):
|
|
return x*y
|
|
```
|
|
|
|
### Ordenar
|
|
```python
|
|
## ordenar según el primer valor de las tuplas
|
|
puntos_2D = [(1, 2), (15, 1), (5, -1), (10, 4)]
|
|
puntos_2D_sorted = sorted(puntos_2D)
|
|
# [(1, 2), (5, -1), (10, 4), (15, 1)]
|
|
|
|
# ordenar por el segundo valor de las tuplas
|
|
def sort_by_y(x):
|
|
return x[1]
|
|
|
|
# puntos_2D_sorted = sorted(puntos_2D, key=sort_by_y)
|
|
puntos_2D_sorted = sorted(puntos_2D, key=lambda x: x[1])
|
|
# (5, -1), (15, 1), (1, 2), (10, 4)]
|
|
|
|
|
|
# ordena según la suma de los valores de las tuplas
|
|
puntos_2D_sorted = sorted(puntos_2D, key=lambda x: x[0] + x[1])
|
|
# [(1, 2), (5, -1), (10, 4), (15, 1)]
|
|
```
|
|
|
|
### map(función, secuencia)
|
|
```python
|
|
a = [1, 2, 3, 4, 5]
|
|
b = map(lambda x: x*2, a)
|
|
print(list(b))
|
|
# [2, 4, 6, 8, 10]
|
|
|
|
c = [x *2 for x in a]
|
|
print(c)
|
|
# [2, 4, 6, 8, 10]
|
|
```
|
|
|
|
### filter(función, secuencia)
|
|
retorna valores donde se cumple la condición de la función
|
|
```python
|
|
b = filter(lambda x: x%2 == 0, a)
|
|
print(list(b))
|
|
# [2, 4]
|
|
|
|
c = [x for x in a if x%2 == 0]
|
|
print(c)
|
|
# [2, 4]
|
|
```
|
|
|
|
### reduce(función, secuencia)
|
|
```python
|
|
from functools import reduce
|
|
producto_a = reduce(lambda x,y: x*y, a)
|
|
print(list(producto_a))
|
|
# 120
|
|
```
|