{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyOvZ5dJCLARb21GNOkgiahn",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kTtdRJZ9QNRA",
"outputId": "ae91ce70-0021-4c90-ae89-89eb422f9f0f"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Suma: 8\n",
"Resta: 6\n",
"Multiplicación: 12\n",
"División: 5.0\n",
"Operación inválida: None\n"
]
}
],
"source": [
"def operacion_matematica(operador):\n",
" if operador == 'suma':\n",
" return lambda a, b: a + b\n",
" elif operador == 'resta':\n",
" return lambda a, b: a - b\n",
" elif operador == 'multiplicacion':\n",
" return lambda a, b: a * b\n",
" elif operador == 'division':\n",
" return lambda a, b: a / b\n",
" else:\n",
" return lambda a, b: None # Si el operador no es válido, devuelve None\n",
"\n",
"# Definir las funciones lambda dentro de la función operacion_matematica\n",
"suma = operacion_matematica('suma')\n",
"resta = operacion_matematica('resta')\n",
"multiplicacion = operacion_matematica('multiplicacion')\n",
"division = operacion_matematica('division')\n",
"\n",
"# Utilizar las funciones lambda definidas dentro de la función operacion_matematica\n",
"print(\"Suma:\", suma(5, 3)) # Salida: 8\n",
"print(\"Resta:\", resta(10, 4)) # Salida: 6\n",
"print(\"Multiplicación:\", multiplicacion(2, 6)) # Salida: 12\n",
"print(\"División:\", division(15, 3)) # Salida: 5.0\n",
"print(\"Operación inválida:\", operacion_matematica('potencia')(2, 3)) # Salida: None\n"
]
},
{
"cell_type": "code",
"source": [
"def ordenar_por_criterio(lista, criterio):\n",
" # Utilizar una función lambda para definir el criterio de ordenamiento\n",
" if criterio == 'longitud':\n",
" return sorted(lista, key=lambda x: len(x))\n",
" elif criterio == 'mayusculas':\n",
" return sorted(lista, key=lambda x: x.upper())\n",
" elif criterio == 'minusculas':\n",
" return sorted(lista, key=lambda x: x.lower())\n",
" else:\n",
" return None # Si el criterio no es válido, devuelve None\n",
"\n",
"# Lista de palabras desordenadas\n",
"palabras = ['Python', 'es', 'un', 'lenguaje', 'de', 'programacion']\n",
"\n",
"# Ordenar la lista por longitud de palabras utilizando una función lambda dentro de otra función\n",
"print(\"Ordenado por longitud:\", ordenar_por_criterio(palabras, 'longitud'))\n",
"# Salida: ['es', 'un', 'de', 'Python', 'programacion', 'lenguaje']\n",
"\n",
"# Ordenar la lista por palabras en mayúsculas utilizando una función lambda dentro de otra función\n",
"print(\"Ordenado por mayúsculas:\", ordenar_por_criterio(palabras, 'mayusculas'))\n",
"# Salida: ['de', 'es', 'lenguaje', 'programacion', 'Python', 'un']\n",
"\n",
"# Ordenar la lista por palabras en minúsculas utilizando una función lambda dentro de otra función\n",
"print(\"Ordenado por minúsculas:\", ordenar_por_criterio(palabras, 'minusculas'))\n",
"# Salida: ['de', 'es', 'lenguaje', 'programacion', 'Python', 'un']\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Jti4jO56Q50t",
"outputId": "6fc83e4c-6ef7-4646-8389-9c9e4a7f5e3f"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Ordenado por longitud: ['es', 'un', 'de', 'Python', 'lenguaje', 'programacion']\n",
"Ordenado por mayúsculas: ['de', 'es', 'lenguaje', 'programacion', 'Python', 'un']\n",
"Ordenado por minúsculas: ['de', 'es', 'lenguaje', 'programacion', 'Python', 'un']\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def filtrar_lista(lista, condicion):\n",
" # Utilizar una función lambda para filtrar la lista según la condición especificada\n",
" return list(filter(lambda x: condicion(x), lista))\n",
"\n",
"# Lista de números\n",
"numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
"\n",
"# Función lambda para verificar si un número es par\n",
"es_par = lambda x: x % 2 == 0\n",
"\n",
"# Función lambda para verificar si un número es impar\n",
"es_impar = lambda x: x % 2 != 0\n",
"\n",
"# Filtrar la lista de números para obtener solo los pares utilizando una función lambda dentro de otra función\n",
"numeros_pares = filtrar_lista(numeros, es_par)\n",
"print(\"Números pares:\", numeros_pares) # Salida: [2, 4, 6, 8, 10]\n",
"\n",
"# Filtrar la lista de números para obtener solo los impares utilizando una función lambda dentro de otra función\n",
"numeros_impares = filtrar_lista(numeros, es_impar)\n",
"print(\"Números impares:\", numeros_impares) # Salida: [1, 3, 5, 7, 9]\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kn3LGAKeRanE",
"outputId": "170d09a1-babe-43e9-f34a-0277f82c0c40"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Números pares: [2, 4, 6, 8, 10]\n",
"Números impares: [1, 3, 5, 7, 9]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def funcion_padre():\n",
" # Definir una función lambda dentro de otra función que recibe dos parámetros\n",
" elevar = lambda x, y: x ** y\n",
" # Utilizar la función lambda definida dentro de la función padre\n",
" return elevar(2, 3) # Elevar 2 a la potencia 3\n",
"\n",
"# Llamar a la función padre\n",
"print(funcion_padre()) # Salida: 8\n"
],
"metadata": {
"id": "6-Oqx4itSpQ3"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def operacion_matematica(x, y):\n",
" # Definir una función lambda dentro de otra función que recibe dos parámetros\n",
" diferencia_cuadrados = lambda a, b: a ** 2 - b ** 2 # a^2-b^2\n",
" # Utilizar la función lambda definida dentro de la función padre\n",
" return diferencia_cuadrados(x, y) # Realizar la operación matemática con los valores x e y\n",
"\n",
"# Llamar a la función para calcular la operación matemática con diferentes valores\n",
"print(\"Resultado:\", operacion_matematica(5, 3)) # 5 ** 2 - 3 ** 2 = 16\n",
"print(\"Resultado:\", operacion_matematica(10, 5)) # 10 ** 2 - 5 ** 2 = 75"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Ji0aZAGcTlLj",
"outputId": "c52135d9-aeb4-4b18-8b29-4366f1ffddf6"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Resultado: 16\n",
"Resultado: 75\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def aumentar_valor(n):\n",
" # Definir una función lambda dentro de otra función\n",
" amplificar = lambda x: x * n\n",
" # Utilizar la función lambda definida dentro de la función padre\n",
" doblar = amplificar(2) # doble de n\n",
" triplicar = amplificar(3) # triple de n\n",
" return doblar + triplicar\n",
"\n",
"# Llamar a la función padre\n",
"print(aumentar_valor(10)) # Salida: 50"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TO5X54JrU8vo",
"outputId": "797003ba-c77c-4442-9744-4cb00f23f2be"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"50\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def myfunc(n):\n",
" return lambda a : a * n\n",
"\n",
"mydoubler = myfunc(2)\n",
"print(mydoubler)\n",
"\n",
"print(mydoubler(11))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2Y0TzzQbW70U",
"outputId": "11c0be6e-e4f5-4895-e8d9-cced0d08430a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
". at 0x7f80d5c89990>\n",
"22\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"_=lambda x,y: x+y\n",
"_(2,3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "tkBGVsZMmWfH",
"outputId": "c9900cad-7613-4a71-bb9b-b263b94fe674"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"5"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"(lambda x, y: x + y)(2, 6)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "oPj-OgFNm3OK",
"outputId": "3ecb8f04-7aba-4481-c846-702a54781a9d"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"8"
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"source": [
"doble = lambda x: 2 * x\n",
"\n",
"doble(4)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YYXq5JLtpYuY",
"outputId": "bf97f9b5-e319-4fee-adad-999e01780945"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"8"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"maxi = lambda a,b: a if a > b else b\n",
"\n",
"maxi(-2, -7)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "z354p2X_qlAq",
"outputId": "21f0e63b-32e1-49ef-bd83-594b77c27751"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-2"
]
},
"metadata": {},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"source": [
"matriz = [[2, 3, 4], [30, 4, 12, 0], [1, 4, 15, 20]]\n",
"\n",
"# Lambda para ordenar cada fila de la matriz\n",
"ordenar = lambda x: [sorted(i) for i in x]\n",
"\n",
"# Lambda para encontrar el segundo mayor elemento de cada fila\n",
"segundo_mayor = lambda matrix, ordena: [y[-2] for y in ordena(matrix)]\n",
"\n",
"# Llamar a la función segundo_mayor con la matriz y la función de ordenamiento\n",
"print(segundo_mayor(matriz, ordenar))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-raoWy0vrPQN",
"outputId": "2bd865d4-d5ab-4eb4-b2de-dc593544539a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[3, 12, 15]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def segundo_max(matriz):\n",
" result = []\n",
" for fila in matriz:\n",
" result.append(sorted(list(set(fila)))[-2])\n",
" return result\n",
"\n",
"matriz = [[2, 3, 4], [30, 4, 12, 0], [1, 4, 20, 20]]\n",
"segundo_max(matriz)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zuOLVxyGviCn",
"outputId": "259a9987-66bc-4ee1-8903-c64fc1187b74"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[3, 12, 4]"
]
},
"metadata": {},
"execution_count": 32
}
]
},
{
"cell_type": "code",
"source": [
"matriz = [[2, 3, 4], [30, 4, 12, 0], [1, 4, 20, 20]]\n",
"\n",
"# Lambda para ordenar cada fila de la matriz\n",
"ordenar = lambda x: [sorted(i) for i in x]\n",
"\n",
"# Lambda para encontrar el segundo mayor elemento de cada fila\n",
"segundo_mayor = lambda matrix, ordena: [y[-2] for y in ordena(matrix)]\n",
"\n",
"# Llamar a la función segundo_mayor con la matriz y la función de ordenamiento\n",
"print(segundo_mayor(matriz, ordenar))\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "k7-cDbBlyB-n",
"outputId": "31fae90c-7d46-4207-dea5-8f2337d7da2a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[3, 12, 20]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Uso de reduce\n",
"# se necesitan dos cosas:\n",
"# 1. Una función (que en este caso es una función lambda)\n",
"# 2. Un iterable (que en este caso es una lista)\n",
"\n",
"from functools import reduce\n",
"\n",
"def producto(lista):\n",
" return reduce(lambda a,b:a*b, lista)\n",
"\n",
"lista = [2,4,3,6,7]\n",
"producto(lista)"
],
"metadata": {
"id": "s6kTtwGzoVea",
"outputId": "a8d6c6ce-24cd-43bf-dbab-11cb2fa51d3a",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 1,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1008"
]
},
"metadata": {},
"execution_count": 1
}
]
}
]
}