PyQuiz 24 - Lambda con strings en Python | Quiz interactivo

PyQuiz 24 – Lambda con strings en Python

El reto

doble = lambda x: x * 2
print(doble('ab'))

¿Cuál es el resultado?

  • a) 'abab'
  • b) Error
  • c) 'ab2'

Piensa tu respuesta antes de seguir leyendo…


Concepto: Lambda con strings

Una función lambda en Python es una función anónima de una sola expresión. Su sintaxis es: lambda parámetros: expresión. El resultado de la expresión es el valor de retorno implícito, sin necesidad de escribir return.

El operador * en Python no solo multiplica números. Cuando se aplica entre una cadena y un entero, repite la cadena ese número de veces. Por ejemplo, 'ab' * 2 devuelve 'abab'. Esto funciona tanto con cadenas como con listas y tuplas.

En el quiz, lambda x: x * 2 define una función que multiplica su argumento por 2. Cuando se llama con 'ab', Python aplica la repetición de cadena: 'ab' * 2 = 'abab'.

Paso a paso

  1. doble = lambda x: x * 2 — se define una función lambda que toma un argumento x y devuelve x * 2. La variable doble apunta a esa función.
  2. doble('ab') — se llama a la función con x = 'ab'.
  3. 'ab' * 2 — Python interpreta esto como repetición de cadena: concatena 'ab' consigo misma 2 veces. Resultado: 'abab'.
  4. print(doble('ab')) — se imprime abab.

📥 Llévate el cheatsheet de Python (gratis)

PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.

Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.

Solución

Respuesta correcta: A) 'abab'

Lambda multiplica 'ab' * 2 = 'abab'. El operador * repite strings.

Sabías que…

El operador * funciona con cadenas, listas y tuplas. Las lambdas son muy útiles como argumentos de funciones de orden superior:

# Repetición con * en distintos tipos
print('=-' * 5)        # '=-=-=-=-'
print([0] * 3)         # [0, 0, 0]
print((1, 2) * 3)      # (1, 2, 1, 2, 1, 2)

# Lambda con sorted()
peliculas = [('Matrix', 1999), ('Inception', 2010), ('Dune', 2021)]
ordenadas = sorted(peliculas, key=lambda x: x[1])
print(ordenadas)  # ordenadas por año

# Lambda con map()
numeros = [1, 2, 3, 4]
cuadrados = list(map(lambda x: x**2, numeros))
print(cuadrados)  # [1, 4, 9, 16]

# Lambda con filter()
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares)  # [2, 4]

Prueba tú mismo

Define una lambda triple que triplique su argumento. ¿Qué devuelve triple(3) y triple('py')?


Más PyQuizzes en elpythonista.com/pyquizzes

Tutorial relacionado: Funciones en Python

¿Quieres aprender Python en orden, no a saltos?

Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 35+ lecciones, código revisado, ejercicios y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.

Ver el curso completo →

35+ lecciones · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario