PyQuiz 36 – map() convierte tipos en Python

El reto
nums = [1, 2, 3]
resultado = list(map(str, nums))
print(resultado)¿Cuál es el resultado?
- a) ['1', '2', '3']
- b) [1, 2, 3]
- c) '123'
Piensa tu respuesta antes de seguir leyendo…
Concepto: map() convierte tipos
La función map(funcion, iterable) aplica una función a cada elemento de un iterable y devuelve un objeto map (un iterador perezoso). Para obtener una lista con los resultados, hay que envolver el resultado con list().
Es una forma funcional y eficiente de transformar colecciones sin escribir bucles explícitos. La función puede ser cualquier callable: una función built-in como str, int, o len, una función definida con def, o una función anónima lambda.
# map con función built-in
resultado = list(map(int, ['1', '2', '3'])) # [1, 2, 3]
# map con lambda
resultado = list(map(lambda x: x**2, [1, 2, 3])) # [1, 4, 9]
# map equivale a una list comprehension:
resultado = [str(x) for x in [1, 2, 3]] # ['1', '2', '3']Paso a paso
nums = [1, 2, 3]— Se crea una lista de enteros.map(str, nums)—mapaplica la funciónstra cada elemento denums:str(1)='1',str(2)='2',str(3)='3'. Devuelve un iterador perezoso.list(map(str, nums))— Se materializa el iterador en una lista:['1', '2', '3'].resultado = list(map(str, nums))— Se guarda la lista de strings enresultado.print(resultado)— Se imprime['1', '2', '3'].
📥 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) ['1', '2', '3']
map(str, nums) aplica str() a cada elemento: [str(1), str(2), str(3)] = ['1', '2', '3'].
Sabías que…
map puede recibir múltiples iterables si la función acepta múltiples argumentos. Python empaqueta los elementos en paralelo:
a = [1, 2, 3]
b = [10, 20, 30]
resultado = list(map(lambda x, y: x + y, a, b))
print(resultado) # [11, 22, 33]
# También útil para conversión masiva de datos:
entradas = ['3.14', '2.71', '1.41']
floats = list(map(float, entradas))
print(floats) # [3.14, 2.71, 1.41]Prueba tú mismo
¿Cómo usarías map() para convertir la lista ['hola', 'MUNDO', 'Python'] en una lista con todas las palabras en minúsculas?
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, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
