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
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']
