"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obtenho uma lista do iterador `map()` do Python 3?

Como obtenho uma lista do iterador `map()` do Python 3?

Publicado em 2024-12-21
Navegar:879

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

Recuperando listas mapeadas em Python 3.x: map() como um iterador

No Python 3.x, a função map() retorna um iterador em vez de uma lista. Essa alteração foi implementada para melhorar a eficiência da memória e otimizar o desempenho. No entanto, isso representa um desafio se você precisar recuperar os valores mapeados como uma lista para processamento posterior.

Solução: convertendo o iterador em uma lista

Para recuperar o valores mapeados como uma lista, use a função list() para converter o iterador retornado por map():

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

Este código retornará uma lista contendo os caracteres mapeados: ['B', '5', '\x00', '^'].

Alternativa: usando uma compreensão de lista

Uma maneira mais concisa de converter uma lista em uma lista de valores mapeados é usar uma lista compreensão:

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

Esta expressão produz o mesmo resultado que o exemplo map() acima.

Iterando diretamente sobre o objeto do mapa

Em determinados cenários, talvez não seja necessário converter o objeto do mapa em uma lista. Você pode iterar diretamente sobre o objeto do mapa usando um loop for:

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

Este código imprimirá os caracteres "ABCD" sem criar uma lista desnecessária.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3