Cartographier vos données : une introduction à la fonction map en Python et JavaScript

Jan 08 2023
La fonction map est un outil utile pour appliquer un certain processus ou une certaine fonction à chaque élément d'une liste, et on la trouve à la fois en Python et en JavaScript. Dans cet article, nous examinerons le fonctionnement de la carte dans les deux langues, ainsi que quelques exemples de différents cas d'utilisation et les différences entre les deux.
Mesurer les ingrédients de Manfreed dans la cuisine

La mapfonction est un outil utile pour appliquer un certain processus ou une certaine fonction à chaque élément d'une liste, et on la trouve à la fois en Python et en JavaScript. Dans cet article, nous verrons comment cela mapfonctionne dans les deux langues, ainsi que quelques exemples de différents cas d'utilisation et les différences entre les deux.

Imaginez que vous ayez une liste d'ingrédients pour une recette et que vous souhaitiez créer une nouvelle liste avec les mesures de chaque ingrédient. En Python, mapce serait comme un chef qui prend chaque ingrédient et annonce la mesure au fur et à mesure, sans l'écrire. C'est plus efficace si vous n'avez besoin d'utiliser les mesures qu'une seule fois, mais si vous souhaitez conserver les mesures pour plus tard, vous devez les écrire vous-même (en enveloppant l'appel à mapdans un list).

En JavaScript, mapc'est comme un chef qui écrit la mesure de chaque ingrédient sur une feuille de papier séparée avant de passer au suivant. Cela prend un peu plus de temps, mais vous vous retrouvez avec une liste de toutes les mesures auxquelles vous pouvez vous référer à tout moment.

Caractéristiques communes:

  • mapprend une liste de valeurs et une fonction en entrée, et applique la fonction à chaque élément de la liste
  • maprenvoie une nouvelle liste avec les résultats de l'application de la fonction à chaque élément de la liste
  • mapest souvent utilisé pour transformer une liste de valeurs d'un formulaire à un autre
  • En Python, maprenvoie un itérateur qui produit les résultats à la volée, plutôt que de créer une toute nouvelle liste. Cela peut être plus efficace si vous n'avez besoin de parcourir les résultats qu'une seule fois, mais cela signifie que vous devez envelopper l'appel à mapsi listvous souhaitez créer une nouvelle liste avec tous les résultats.
  • En JavaScript, maprenvoie un nouveau tableau avec tous les résultats, vous n'avez donc rien à faire de spécial pour créer une nouvelle liste.
  • En JavaScript, vous pouvez passer mapune "fonction fléchée" comme fonction de rappel, qui est un raccourci.

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

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

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

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

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

J'espère que cet article vous a été utile pour vous présenter la mapfonction et vous montrer quelques-unes des différentes façons de l'utiliser. Bon codage !