maneira mais limpa de chamar uma função em uma lista de itens
No python 2, eu useimap
para aplicar uma função a vários itens, por exemplo, para remover todos os itens correspondentes a um padrão:
map(os.remove,glob.glob("*.pyc"))
Claro que ignoro o código de retorno deos.remove
, Eu só quero que todos os arquivos sejam excluídos. Criou uma instância temporária de uma lista para nada, mas funcionou.
Com Python 3, comomap
retorna um iterador e não uma lista, o código acima não faz nada. Encontrei uma solução alternativa, poisos.remove
retornaNone
, Eu usoany
para forçar a iteração na lista completa, sem criar umlist
(melhor performance)
any(map(os.remove,glob.glob("*.pyc")))
Mas parece um pouco perigoso, especialmente ao aplicá-lo a métodos que retornam algo. Outra maneira de fazer isso com uma linha e não criar uma lista desnecessária?