Python função map() com EXEMPLOS
Python map() aplica uma função em todos os itens de um iterador fornecido como entrada. Um iterador, por exemplo, pode ser uma lista, uma tupla, um conjunto, um dicionário, uma string e retorna um objeto de mapa iterável. Python map() é uma função integrada.
Sintaxe
map(function, iterator1,iterator2 ...iteratorN)
parâmetros
Aqui estão dois importantes
- função: Função obrigatória a ser dada ao mapa, que será aplicada a todos os itens disponíveis no iterador.
- iterador: um objeto obrigatório iterável. 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() aplicará a função fornecida em todos os itens dentro do iterador e retornará 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 como uma função e um objeto iterável. A função dada a map() é uma função normal e irá iterar sobre todos os valores presentes no objeto iterável fornecido.
Por exemplo, considere que você tem uma lista de números e deseja encontrar o quadrado de cada um dos números.
Para obter a saída, precisamos da função que retornará o quadrado do número fornecido. A função será a seguinte:
def square(n): return n*n
A lista de itens que queremos encontrar no quadrado é a seguinte:
my_list = [2,3,4,5,6,7,8,9]
Agora vamos usar a função interna map() do python 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(), conforme visto na saída, é um objeto de mapa exibido na tela como .
Você terá que iterar a saída do mapa usando um loop for ou o método list() para obter a saída final. Usei list() no código que exibe os valores dentro da lista fornecida.
Portanto, usando a função map(), podemos obter o quadrado de cada número. A lista dada ao mapa foi [2,3,4,5,6,7,8,9] e usando a função square() a saída de map() obtivemos [4, 9, 16, 25, 36, 49, 64, 81] .
A função map() aplica a função square() em todos os itens da lista. Por exemplo, a variável my_list e atualiza a lista com o quadrado de cada número. A saída é armazenada na variável update_list.
Usando map() com Python funções integradas
Python A função map() é uma função integrada e também pode ser usada com outras funções integradas disponíveis em Python. No exemplo, vamos fazer uso de Python função integrada round() que 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. Faremos uso de round() como função para mapear().
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 conforme mostrado na saída.
Usando map() com uma string como iterador
Também podemos usar map() em uma string. Em Python, uma string atua como um array para que possamos usá-la facilmente dentro do map().
No exemplo, temos uma função myMapFunc() que se encarrega de converter a string fornecida para maiúsculas. A função myMapFunc() é dada à função map(). A função map se encarregará de converter a string fornecida em 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 listof Numbers
Para trabalhar com a 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 é dada para mapear junto 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]
A saída que vemos é que cada número na lista é
multiplicado por 10.
Usando map() com Tupla
Uma tupla é um objeto em Python que tem itens separados por vírgulas e colocados entre colchetes. No exemplo, pegaremos uma tupla com valores de string. A função que usaremos 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']
A saída que obtemos é uma tupla com todos os valores nela convertidos para letras 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 da função map().
O exemplo a seguir mostra o funcionamento do 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
Set in 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 prático de uso de set como um 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.
Portanto, no exemplo, usaremos 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]
Usando vários 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 adicionar duas listas. O mesmo pode ser feito usando a função map(). Faremos uso de 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 ambos.
Aqui está o exemplo prático de adição de duas listas fornecidas 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()
Faremos uso de uma lista e um iterador de tupla na função map(). A função é dada ao mapa – myMapFunc() obterá os itens da lista e da Tupla. Os itens serão unidos com um sublinhado (_). O exemplo de trabalho é 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']
Resumo
- Python map() é uma função integrada que aplica uma função em todos os itens de um iterador fornecido como entrada. Um iterador, por exemplo, pode ser uma lista, uma tupla, uma string, etc. e retorna um objeto de mapa iterável.
- A função map() aplicará a função fornecida em todos os itens dentro do iterador e retornará um objeto de mapa iterável, ou seja, uma tupla, uma lista, etc.
- Python A função map() é uma função integrada e também pode ser usada com outras funções integradas disponíveis em Python.
- Uma tupla é um objeto em Python que tem itens separados por vírgulas e colocados entre parênteses redondos. No exemplo, pegaremos uma tupla com valores de string. A função que usaremos converterá os valores fornecidos para maiúsculas.
- Um dicionário em Python é criado usando chaves ({}). Como o dicionário é um iterador, você pode usá-lo dentro da função map().
- Set in 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().
- In Python, expressões lambda (ou formas lambda) são utilizadas para construir funções anônimas. Portanto, a palavra-chave lambda deve ser usada quando você quiser usar lambda dentro de map().
- Você pode enviar mais de um iterador, ou seja, uma lista, uma tupla para a função map().