A função de mapa de retorno de lista tem a vantagem de salvar a digitação, especialmente durante as sessões interativas. Você pode definir a lmap
função (na analogia do python2 imap
) que retorna a lista:
lmap = lambda func, *iterable: list(map(func, *iterable))
A chamada, em lmap
vez de map
, fará o trabalho:
lmap(str, x)
é menor em 5 caracteres (30% nesse caso) list(map(str, x))
e certamente menor que [str(v) for v in x]
. Você também pode criar funções semelhantes filter
.
Houve um comentário à pergunta original:
Eu sugeriria uma renomeação para Getting map () para retornar uma lista no Python 3. *, como se aplica a todas as versões do Python3. Existe uma maneira de fazer isso? - meawoppl 24/01 às 17:58
Ele é possível fazer isso, mas é uma idéia muito ruim. Apenas por diversão, veja como você pode ( mas não deve ) fazê-lo:
__global_map = map #keep reference to the original map
lmap = lambda func, *iterable: list(__global_map(func, *iterable)) # using "map" here will cause infinite recursion
map = lmap
x = [1, 2, 3]
map(str, x) #test
map = __global_map #restore the original map and don't do that again
map(str, x) #iterator
map()
foi quase removido do idioma porque não há motivo para usá-lo em uma compreensão de lista ou em umfor
loop.