Mapeando seus dados: uma introdução à função map em Python e JavaScript
A mapfunção é uma ferramenta útil para aplicar um determinado processo ou função a cada elemento em uma lista e é encontrada tanto em Python quanto em JavaScript. Nesta postagem, veremos como mapfunciona em ambas as linguagens, juntamente com alguns exemplos de diferentes casos de uso e as diferenças entre os dois.
Imagine que você tem uma lista de ingredientes para uma receita e deseja criar uma nova lista com as medidas de cada ingrediente. Em Python, mapseria como um chef que pega cada ingrediente e diz a medida à medida que avança, sem anotá-la. Isso é mais eficiente se você só precisar usar as medidas uma vez, mas se quiser guardar as medidas para mais tarde, você mesmo terá que anotá-las (envolvendo a chamada para mapem um list).
Em JavaScript, mapé como um chef que anota a medida de cada ingrediente em um pedaço de papel separado antes de passar para o próximo. Isso leva um pouco mais de tempo, mas você acaba com uma lista de todas as medidas que pode consultar sempre que quiser.
Características comuns:
maprecebe uma lista de valores e uma função como entrada e aplica a função a cada elemento da listamapretorna uma nova lista com os resultados da aplicação da função a cada elemento da listamapé frequentemente usado para transformar uma lista de valores de uma forma para outra
- Em Python,
mapretorna um iterador que produz os resultados instantaneamente, em vez de criar uma lista totalmente nova. Isso pode ser mais eficiente se você só precisar iterar os resultados uma vez, mas significa que você precisa agrupar a chamadamapselistquiser criar uma nova lista com todos os resultados. - Em JavaScript,
mapretorna um novo array com todos os resultados, então você não precisa fazer nada especial para criar uma nova lista. - Em JavaScript, você pode passar
mapuma "função de seta" como função de retorno de chamada, que é uma abreviação.
Em Python:
words = ['cat', 'window', 'defenestrate']
uppercase_words = list(map(str.upper, words))
print(uppercase_words) # ['CAT', 'WINDOW', 'DEFENESTRATE']
const words = ['cat', 'window', 'defenestrate'];
const uppercaseWords = words.map(word => word.toUpperCase());
console.log(uppercaseWords); // ['CAT', 'WINDOW', 'DEFENESTRATE']
Em Python:
numbers = [1, 2, 3, 4]
doubled_numbers = list(map(lambda x: x * 2, numbers))
print(doubled_numbers) # [2, 4, 6, 8]
const numbers = [1, 2, 3, 4];
const doubledNumbers = numbers.map(x => x * 2);
console.log(doubledNumbers); // [2, 4, 6, 8]
Em Python:
def fahrenheit_to_celsius(fahrenheit):
celsius = (fahrenheit - 32) * 5 / 9
return int(celsius)
temperatures_fahrenheit = [32, 60, 212]
temperatures_celsius = list(map(fahrenheit_to_celsius, temperatures_fahrenheit))
print(temperatures_celsius) # [0, 15, 100]
const fahrenheitToCelsius = fahrenheit => {
const celsius = (fahrenheit - 32) * 5 / 9;
return Math.floor(celsius);
};
const temperaturesFahrenheit = [32, 60, 212];
const temperaturesCelsius = temperaturesFahrenheit.map(fahrenheitToCelsius);
console.log(temperaturesCelsius); //[0, 15, 100]
Em Python:
import math
numbers = [1.5, 2.3, 3.7, 4.2]
rounded_numbers = list(map(math.floor, numbers))
print(rounded_numbers) # [1, 2, 3, 4]
const numbers = [1.5, 2.3, 3.7, 4.2];
const roundedNumbers = numbers.map(Math.floor);
console.log(roundedNumbers); //[1, 2, 3, 4]
Em Python:
import math
numbers = [1, 4, 9, 16]
square_roots = list(map(int, map(math.sqrt, numbers)))
print(square_roots) # [1, 2, 3, 4]
const numbers = [1, 4, 9, 16];
const squareRoots = numbers.map(Math.sqrt).map(x => Math.floor(x));
console.log(squareRoots); //[1, 2, 3, 4]
Espero que este post tenha sido útil para apresentá-lo à mapfunção e mostrar algumas das diferentes maneiras de usá-la. Codificação feliz!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)