Python Função map() com exemplos

⚡ Resumo Inteligente

Python A função `map()` aplica uma função específica a cada item de um iterável, como uma lista, tupla, conjunto, dicionário ou string. Ela retorna um objeto `map` que pode ser convertido com `list()` ou iterado usando um loop.

  • 🔢 Sintaxe: A função map() recebe uma função mais um ou mais iteráveis ​​e aplica essa função a cada elemento.
  • 🔁 Valor de retorno: map() retorna um objeto de mapa preguiçoso, então envolva-o em list(), tuple() ou set() para visualizar os resultados.
  • 🧩 Iteráveis: Listas, tuplas, conjuntos, dicionários e strings funcionam como entradas para map().
  • Lambada: Combinar a função map() com uma expressão lambda evita a definição de uma função nomeada separada para transformações simples.
  • Iteráveis ​​múltiplos: Ao passar vários iteráveis, a função é aplicada a eles em paralelo; pare.ping pelo menos.
  • 🤖 Assistência de IA: Assistentes de IA, como o GitHub Copilot, geram chamadas map(), e transformações no estilo de mapas alimentam fluxos de dados em aprendizado de máquina.

Python Função map()

Sintaxe

map(function, iterator1,iterator2 ...iteratorN)

Parâmetros Técnicos

Aqui estão dois parâmetros importantes:

  • função: Uma função obrigatória a ser fornecida para map(), que será aplicada a todos os itens disponíveis no iterador.
  • iterador: Um objeto iterável obrigatório. Pode ser uma lista, uma tupla, etc. Você pode passar vários objetos iteradores para a função map().

Valor de retorno

A função map() aplica a função fornecida a todos os itens dentro do iterador e retorna um objeto de mapa iterável, ou seja, uma tupla, uma lista, etc.

Como funciona a função map()?

A função map() recebe duas entradas: uma função e um objeto iterável. A função fornecida a map() é uma função normal, que itera sobre todos os valores presentes no objeto iterável.

Por exemplo, considere que você tem uma lista de números e deseja encontrar o quadrado de cada um dos números.

Para obter o resultado, precisamos de uma função que retorne o quadrado do número dado. A função é a seguinte:

def square(n):
	return n*n

A lista de itens para os quais queremos encontrar o quadrado é a seguinte:

my_list = [2,3,4,5,6,7,8,9]

Agora vamos usar a função integrada map() para obter o quadrado de cada um dos itens em my_list.

O código final é o seguinte:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

A saída da função map(), como visto acima, é um objeto de mapa exibido na tela como .

Você precisará iterar sobre a saída de `map()` usando um loop `for` ou o método `list()` para obter o resultado final. No código, utilizei `list()` para exibir os valores dentro da lista fornecida.

Assim, usando a função map(), conseguimos obter o quadrado de cada número. A lista fornecida para map() foi [2,3,4,5,6,7,8,9], e usando a função square(), a saída que obtivemos foi [4, 9, 16, 25, 36, 49, 64, 81].

A função map() aplica a função square() a todos os itens da lista. Por exemplo, ela pega a variável my_list e atualiza a lista com o quadrado de cada número. O resultado é armazenado na variável updated_list.

Usando map() com Python funções integradas

O Python A função map() é uma função integrada e também pode ser usada com outras funções integradas disponíveis em PythonNeste exemplo, vamos utilizar o Python A função integrada round() arredonda os valores fornecidos.

Exemplo:

A lista que tenho é my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Preciso dos valores arredondados para cada item presente na lista, então usaremos a função round() para map().

my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]
updated_list = map(round, my_list)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

A função round() é aplicada a todos os itens da lista e retorna uma lista com todos os valores arredondados, como mostrado na saída.

Usando map() com uma string como iterador

Também podemos usar map() em uma string. Em PythonUma string se comporta como um array, então podemos usá-la facilmente dentro de map().

Neste exemplo, temos uma função `myMapFunc()` que se encarrega de converter a string fornecida para maiúsculas. A função `myMapFunc()` é passada para a função `map()`. A função `map()` se encarregará de converter a string fornecida para maiúsculas, passando a string para `myMapFunc()`.

def myMapFunc(s):
    return s.upper()
my_str = "welcome to guru99 tutorials!"
updated_list = map(myMapFunc, my_str)
print(updated_list)
for i in updated_list:
    print(i, end="")

Saída:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Usando map() com uma lista de Numbers

Para trabalhar com uma lista em map(), pegaremos uma lista de números e multiplicaremos cada número da lista por 10.

A lista que vamos usar é [2,3,4,5,6,7,8,9]. A função `myMapFunc()` se encarrega de multiplicar o número fornecido por 10. A função é passada para `map()` juntamente com a lista.

Exemplo:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

O resultado que vemos é que cada número da lista é multiplicado por 10.

Usando map() com Tupla

Uma tupla é um objeto em Python que contém itens separados por vírgulas e entre parênteses. Neste exemplo, usaremos uma tupla com valores de string. A função que utilizaremos converterá os valores fornecidos para maiúsculas.

Exemplo:

def myMapFunc(n):
    return n.upper()

my_tuple = ('php','java','python','c++','c')

updated_list = map(myMapFunc, my_tuple)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

O resultado que obtemos é uma tupla com todos os valores convertidos para maiúsculas.

Usando map() com Dicionário

A dicionário em Python é criado usando chaves ({}). Como o dicionário é um iterador, você pode usá-lo dentro da função map(). Vamos agora usar um dicionário como iterador dentro de map().

O exemplo a seguir mostra o funcionamento de um iterador de dicionário dentro de map():

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

Saída:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Usando map() com Set

Um conjunto em Python é uma coleção não ordenada de itens entre chaves ({}). Como set() também é um iterador, você pode usá-lo dentro da função map().

Aqui está um exemplo funcional de como usar um conjunto como iterador dentro de map():

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

Saída:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Usando map() com função Lambda

In Python, expressões lambda são utilizadas para construir funções anônimas. Você terá que usar a palavra-chave lambda da mesma forma que usa def para definir funções normais.

Neste exemplo, vamos usar a função lambda dentro de map(). A função lambda multiplicará cada valor da lista por 10.

Exemplo:

my_list = [2,3,4,5,6,7,8,9]
updated_list = map(lambda x: x * 10, my_list)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

Utilizando múltiplos iteradores dentro da função map()

Exemplo 1: Passando dois iteradores de lista para map()

Você pode enviar mais de um iterador, ou seja, uma lista, uma tupla, etc., tudo ao mesmo tempo para a função map().

Por exemplo, se você quiser somar duas listas, isso pode ser feito usando a função map(). Vamos usar duas listas, my_list1 e my_list2.

No exemplo abaixo, o primeiro item de `my_list1` é adicionado ao primeiro item de `my_list2`. A função `myMapFunc()` recebe itens de `my_list1` e `my_list2` e retorna a soma de ambas.

Aqui está um exemplo funcional de como somar duas listas usando a função map().

def myMapFunc(list1, list2):
    return list1+list2

my_list1 = [2,3,4,5,6,7,8,9]
my_list2 = [4,8,12,16,20,24,28]

updated_list = map(myMapFunc, my_list1,my_list2)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Exemplo 2: Passando uma tupla e um iterador de lista para map()

Vamos utilizar um iterador de lista e um iterador de tupla na função map(). A função passada para map(), myMapFunc(), obterá os itens da lista e da tupla. Os itens serão unidos por um sublinhado (_). O exemplo funcional é mostrado abaixo:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_list = ['a','b', 'b', 'd', 'e']
my_tuple = ('PHP','Java','Python','C++','C')

updated_list = map(myMapFunc, my_list,my_tuple)
print(updated_list)
print(list(updated_list))

Saída:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Perguntas Frequentes

Ambas aplicam uma operação a cada item. Uma compreensão de lista geralmente é mais legível e retorna uma lista diretamente, enquanto map() retorna um objeto de mapa preguiçoso e pode ser mais rápido ao reutilizar uma função nomeada existente.

Não. A função `map()` nunca altera o iterável original. Ela lê cada elemento, aplica a sua função e produz um novo objeto `map` preguiçoso, deixando a lista, tupla ou string de origem intacta.

In Python 3. O método `map()` é preguiçoso: ele retorna um objeto mapa que calcula valores somente quando iterado. Isso economiza memória com grandes volumes de dados. Use `list()` ou um loop para obter os resultados.

A função `map()` transforma todos os itens, a função `filter()` mantém apenas os itens que passam em um teste, e a função `reduce()` (do pacote `functools`) combina todos os itens em um único valor. Juntas, elas abrangem as operações de transformação, seleção e agregação.

Quando os iteráveis ​​têm comprimentos diferentes, a função map() para no iterável mais curto. Os itens extras nos iteráveis ​​mais longos são ignorados, portanto nenhum erro é gerado e o resultado corresponde ao iterável mais curto.

Não. Um objeto mapa é um iterador que se esgota após uma única iteração. Depois de percorrer seu conteúdo em um loop ou chamar o método `list()`, ele estará vazio. Converta-o para uma lista primeiro se precisar reutilizá-lo.

Em aprendizado de máquina, a função `map()` aplica funções de pré-processamento em diversos conjuntos de dados, como escalonamento de números, tokenização de texto ou transformação de atributos antes do treinamento. Ela oferece uma maneira limpa e funcional de executar a mesma operação em várias amostras.

Sim. O GitHub Copilot completa automaticamente as chamadas de map() com a função e os iteráveis ​​corretos, e ferramentas de IA agéticas podem refatorar loops em expressões map() e, em seguida, executar seus testes para confirmar se o comportamento permanece inalterado.

Resuma esta postagem com: