Função Python 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 funções integradas do Python

A função Python map() é uma função integrada e também pode ser usada com outras funções integradas disponíveis em Python. No exemplo, usaremos a função integrada round() do Python 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 de 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 lista de números

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 possui itens separados por vírgulas e entre círculos brackets. No exemplo, pegaremos uma tupla com valores de string. A função que usaremos irá converter os valores dados para letras 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 encaracolado brackets({}). 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().

Following exemplo 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

Conjunto em Python é uma coleção não ordenada de itens em formato encaracolado brackets(()). 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

Em 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.
  • A função Python 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 possui itens separados por vírgulas e entre círculos brackets. No exemplo, será necessária uma tupla com valores de string. A função que usaremos irá converter os valores dados para letras maiúsculas.
  • Um dicionário em Python é criado usando curly brackets({}). Como o dicionário é um iterador, você pode usá-lo dentro da função map().
  • Conjunto em Python é uma coleção não ordenada de itens em formato encaracolado brackets(()). Como set() também é um iterador, você pode usá-lo dentro da função map().
  • Em 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().