"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo obtengo una lista del iterador `map()` de Python 3?

¿Cómo obtengo una lista del iterador `map()` de Python 3?

Publicado el 2024-12-21
Navegar:759

How Do I Get a List from Python 3's `map()` Iterator?

Recuperando listas asignadas en Python 3.x: map() como iterador

En Python 3.x, la función map() devuelve un iterador en lugar de una lista. Este cambio se implementó para mejorar la eficiencia de la memoria y optimizar el rendimiento. Sin embargo, plantea un desafío si necesita recuperar los valores asignados como una lista para su posterior procesamiento.

Solución: convertir el iterador en una lista

Para recuperar el valores mapeados como una lista, use la función list() para convertir el iterador devuelto por map():

mapped_list = list(map(chr, [66, 53, 0, 94]))

Este código devolverá una lista que contiene los caracteres asignados: ['B', '5', '\x00', '^'].

Alternativa: usar una lista por comprensión

Una forma más concisa de convertir una lista en una lista de valores asignados es usar una lista comprensión:

mapped_list = [chr(c) for c in [66, 53, 0, 94]]

Esta expresión produce el mismo resultado que el ejemplo de map() anterior.

Iteración directa sobre el objeto del mapa

En ciertos escenarios, es posible que no necesite convertir el objeto del mapa en una lista. Puede iterar sobre el objeto del mapa directamente usando un bucle for:

for c in map(chr, [65, 66, 67, 68]):
    print(c)

Este código imprimirá los caracteres "ABCD" sin crear una lista innecesaria.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3