Pular para o conteúdo

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

Dica publicada em Python / Miscelânea
- R45678465
Hits: 20.735 Categoria: Python Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

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 ;)

Criando uma partição virtual no Linux

Python com Ninja-IDE no Fedora

Novo TradutorOOoNote substitui texto e envia o antigo para anotação

Hardware Project Simulator 0.23 - Mais fácil ainda!

Instalando o pyenv no Linux Mint e Ubuntu

"RPG Maker" escrito em Python e Pygame

#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

Entre na sua conta para comentar.