Функция map— полезный инструмент для применения определенного процесса или функции к каждому элементу в списке, и она есть как в Python, так и в JavaScript. В этом посте мы рассмотрим, как mapработает на обоих языках, а также несколько примеров различных вариантов использования и различия между ними.
Представьте, что у вас есть список ингредиентов для рецепта, и вы хотите создать новый список с размерами для каждого ингредиента. В Python mapэто было бы похоже на шеф-повара, который берет каждый ингредиент и называет меру по мере их приготовления, не записывая ее. Это более эффективно, если вам нужно использовать измерения только один раз, но если вы хотите сохранить измерения на потом, вам придется записать их самостоятельно (поместив вызов mapв list).
В JavaScript mapэто похоже на шеф-повара, который записывает количество каждого ингредиента на отдельном листе бумаги, прежде чем перейти к следующему. Это займет немного больше времени, но в итоге вы получите список всех измерений, к которым вы можете вернуться в любое время.
Общие черты:
mapпринимает список значений и функцию в качестве входных данных и применяет функцию к каждому элементу в спискеmapвозвращает новый список с результатами применения функции к каждому элементу в спискеmapчасто используется для преобразования списка значений из одной формы в другую.mapвозвращает итератор, который выдает результаты на лету, а не создает новый список. Это может быть более эффективным, если вам нужно перебрать результаты только один раз, но это означает, что вам нужно обернуть вызов, mapесли listвы хотите создать новый список со всеми результатами.mapвозвращает новый массив со всеми результатами, поэтому вам не нужно делать ничего особенного для создания нового списка.map«стрелочную функцию» в качестве функции обратного вызова, что является сокращением.В Питоне:
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']
В Питоне:
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]
В Питоне:
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]
В Питоне:
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]
В Питоне:
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]
Я надеюсь, что этот пост помог вам познакомить вас с этой mapфункцией и показать вам различные способы ее использования. Удачного кодирования!
Вы, должно быть, слышали обо всех новых мощных плагинах ChatGPT, таких как Browser, Code Interpreter и т. д. Но есть проблема: доступ к плагинам ограничен списком ожидания, и поэтому многие не имеют к нему доступа.
На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.
Вчера мы закрыли двери конкурса песни «Евровидение» в этом году блестящим, хаотичным грандиозным финалом, в котором шведская певица Лорин забрала домой трофей, став первой женщиной, выигравшей дважды, и вернув корону Швеции спустя 50 лет после того, как ABBA выиграла конкурс. с «Ватерлоо». Они стали одним из крупнейших исполнителей в каноне поп-музыки.
Элисон Ли, управляющий советник по связям с правительством Процесс ежегодных ассигнований федерального правительства занимает центральное место в наших усилиях по финансированию удаления двуокиси углерода (CDR). Каждый год Carbon180 направляет запросы в различные офисы Конгресса, чтобы помочь определить, куда пойдут доллары в следующем году.
Это ярко-золотое утро в холмистой местности на западе, когда первые лучи солнечного света освещают инеистую траву на равнинах. Стадо безмятежных ангусских коров, угольно-черных и массивных, вырисовывается на фоне восхода солнца, когда они идут по проторенной тропе к месту, которое они все хорошо знают; барная стойка.