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

Publicado por - em 04/03/2008

[ Hits: 20.697 ]

 


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

Vídeo sobre como participar do Google Summer of Code

Carteira de Bitcoin Electrum no Linux

Reproduzindo vídeos em modo texto no Linux

Spyder - Excelente IDE para desenvolver em Python

Superkaramba sob x86_64

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts