Usando a função map em vez de for (Python)

Publicado por - em 04/03/2008

[ Hits: 17.440 ]

 


Usando a função map em vez de for (Python)



Uma coisa que muita gente não conhece no Python é a função map, vamos analisar esse código que criar uma lista com os quadrados dos números de 0 a 10:

final = []

def retornaquadrado(x):
    return x**2

for item in range(11):
    final.append(quadrado(item))

Deu pra ver que isso deixa e código muito grande, e pode ser simplificada usando o map, que é um comando parecido com o for, só que mais simples...

Segue um exemplo:

def retornaquadrado(x):
    return x**2

final = map(retornaquadrado,range(11))

Sim, essa linha (a definição da função não conta =P) é a mesma coisa que aquele código, e isso pode simplificar muito o seu programa! Espero que aproveite ;)

Outras dicas deste autor

Criando uma partição virtual no Linux

Leitura recomendada

Python: Somando valores em um dicionário de strings

Referenciando linhas anteriores em um arquivo csv usando Pandas

Executando comandos do Shell Bash pelo Python

Criando aplicativos multiplataforma (Android, iOS, Windows) com Python + Kivy

Hardware Project Simulator 0.1 - Simulador de montagem de computadores

  

Comentários
[1] Comentário enviado por danltmz em 26/09/2009 - 10:58h

A função map é muito utilizada quando se usa o paradigma de programação funcional, e apesar de o funcionamento dela ser bem simples, seria bom explicar melhor aos iniciantes..

Funcionamento:

a função map recebe dois argumentos, o primeiro deles é o nome de uma função e o segundo uma lista, então map retorna uma outra lista que contem os resultados provenientes da ação daquela função sobre cada ítem da lista..

exemplificando, se tivéssemos:
--------------------
lista = []

def dobra(x):
....return x*2 #OBS: os 4 pontinhos nao fazem parte do código

lista = map(dobra,(1,2,3,4))
--------------------

após a execução da função map, a aparência de 'lista' seria '[2,4,6,8]'

Mas boa dica :)

[2] Comentário enviado por fr4z40 em 24/11/2015 - 08:16h

em alguns casos, vc nem precisa definir função, neste caso usado como exemplo... vc poderia ter usado "lambda"

final = map((lambda x: x ** 2),numeros)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts