![Migração VMware para opções da Microsoft](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711567345_Migracao-VMware-para-opcoes-da-Microsoft-150x150.png)
Migração VMware para opções da Microsoft
27 de março de 2024![Tutorial: Usando LangChain e Gemini para resumir artigos](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711584003_Tutorial-Usando-LangChain-e-Gemini-para-resumir-artigos-150x150.jpg)
Tutorial: Usando LangChain e Gemini para resumir artigos
27 de março de 2024Pitão mapa() é uma função importante ao trabalhar com iteráveis Python (tuplas, listas, etc.). Essencialmente, o que esta função faz é permitir processar e transformar itens que podem ser iterados, o que significa que podem ser repetidos sem a necessidade de usar um loop.
Pense no mapa() funciona desta forma: é usado para aplicar uma função a cada item dentro de um iterável e retorna os resultados como uma lista. O mapa() A função aceita dois parâmetros: a função que será aplicada e o iterável ao qual será aplicada.
Resistir.
Antes de prosseguirmos, vamos definir um iterável.
Um iterável é um objeto que pode ser repetido (ou iterado). Listas, tuplas, conjuntos, dicionários e strings são todos iteráveis.
Considere o seguinte:
Abra o interpretador Python com o comando:
python3
Emita o seguinte:
list("My name is Jack Wallen)
O que fizemos foi criar uma lista composta por uma sequência de caracteres. A saída disso lista() função ficaria assim:
('M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'J', 'a', 'c', 'k', ' ', 'W', 'a', 'l', 'l', 'e', 'n')
O que ele fez foi percorrer cada caractere da lista.
Outro exemplo usa o soma() funcionar assim:
sum((5, 10, 15))
A função iteraria todos os três números e geraria o total, que é 30.
Existem várias funções integradas que aceitam iteráveis como argumentos, como list, tuple, dict, set, sum, sorted, any, all, max e min.
E isso é iterável em poucas palavras.
Mas como usamos iteráveis com o mapa() função? Primeiro, vamos examinar a sintaxe básica. Como mencionei, o mapa() função aceita dois parâmetros, que são:
- função – uma função que instrui o mapa a passar cada elemento de um determinado iterável.
- iterável – o iterável que será mapeado.
A sintaxe é semelhante a esta:
map(function, iterable)
Em outras palavras:
map(function, iterable(iterable1, iterable2, iterable3, … ))
Deixe-me mostrar como isso funciona.
Uma função map() básica
Vamos criar um programa Python simples que irá elevar ao quadrado uma lista de números (um iterável). Definiremos nossa primeira função assim:
def square(n): return n ** 2
Agora que definimos nossa função, precisamos definir as variáveis, por meio de um iterável. Para isso, usaremos uma lista e a definiremos como números assim:
numbers = (2, 4, 6, 8, 10)
A seguir, definiremos os resultados usando mapa(). Nossa função será quadrada (da nossa função definida) e nosso iterável serão números (da nossa definição de variável acima). Esta linha se parece com:
result = map(square, numbers)
Finalmente, usaremos a função print() em conjunto com a função lista() função para imprimir resultados como este:
print(list(result))
Todo o bloco de código se parece com isto:
def square(n): return n ** 2 numbers = (2, 4, 6, 8, 10) result = map(square, numbers) print(list(result))
Salve e feche o arquivo (nomeando-o como mapa.py). Execute este pequeno aplicativo Python assim:
python3 mapa.py
Os resultados serão:
(4, 16, 36, 64, 100)
Obrigado mapa()ele percorreu nossa lista de números para criar o quadrado de cada número.
Se usássemos um loop para esta mesma aplicação, seria algo assim:
numbers = (2, 4, 6, 8, 10) squared = () for num in numbers: squared.append(num ** 2) print(squared)
Quando você compara o código, eles parecem igualmente simples e consomem aproximadamente a mesma quantidade de espaço. Qual é a diferença? A função map() é muito mais eficiente que um loop. Além disso, a função map() fornece itens sob demanda, enquanto o loop deve armazenar valores na memória. Imagine que você tem uma enorme quantidade de iteráveis. Se você usar um loop nesse caso, estará armazenando uma grande quantidade de dados na memória, enquanto que com o mapa() função, você não precisa se preocupar com isso.
Então, você obtém a mesma funcionalidade com mapa(), sem o alto custo de sobrecarga ao usar um loop. Isso será crucial à medida que seus aplicativos Python se tornarem maiores e mais complexos.
Vamos tornar isso um pouco mais complexo. Digamos, por exemplo, que você tenha as duas listas a seguir:
numbers1 = (2, 4, 6, 8, 10) numberrs2 = (12, 14, 16, 18, 20)
E se você quisesse adicionar o número superior ao número inferior dessas duas listas? Você pode usar uma função lambda (que apresentarei em outro artigo) definindo resultados como tal:
result = map(lambda x, y: x + y, numbers1, numbers2)
Por fim, imprimimos nossos resultados com a seguinte linha:
print(list(result))
O código inteiro fica assim:
numbers1 = (2, 4, 6, 8, 10) numbers2 = (12, 14, 16, 18, 20) result = map(lambda x, y: x + y, numbers1, numbers2) print(list(result))
Salve o arquivo como map2.py e execute-o com o comando:
python map2.py
Os resultados seriam:
(14, 18, 22, 26, 30)
O mapa() A função iterou por cada número em números1 e números2, adicionando os números na primeira posição de cada um e, em seguida, iterando pelo restante das listas.
E é assim que você usa o Python mapa() função. Quando você precisar de melhor controle de seus recursos e tiver que trabalhar com grandes iteráveis, considere isso sempre em um loop.
A postagem Função Map() do Python: iterar sem loop apareceu pela primeira vez em The New Stack.