Funkcja mapjest użytecznym narzędziem do stosowania określonego procesu lub funkcji do każdego elementu na liście i można ją znaleźć zarówno w Pythonie, jak i JavaScript. W tym poście przyjrzymy się, jak mapdziała w obu językach, wraz z kilkoma przykładami różnych przypadków użycia i różnicami między nimi.
Wyobraź sobie, że masz listę składników przepisu i chcesz utworzyć nową listę z pomiarami dla każdego składnika. W Pythonie mapbyłoby to jak szef kuchni, który bierze każdy składnik i woła pomiar w miarę upływu czasu, bez zapisywania go. Jest to bardziej wydajne, jeśli potrzebujesz użyć pomiarów tylko raz, ale jeśli chcesz zachować pomiary na później, musisz je zapisać samodzielnie (zawijając wywołanie mapw list).
W JavaScript mapjest jak szef kuchni, który zapisuje pomiar dla każdego składnika na osobnej kartce papieru, zanim przejdzie do następnego. Zajmie to trochę więcej czasu, ale otrzymasz listę wszystkich pomiarów, do której możesz wrócić w dowolnym momencie.
Wspólne cechy:
mappobiera listę wartości i funkcję jako dane wejściowe i stosuje tę funkcję do każdego elementu na liściemapzwraca nową listę z wynikami zastosowania funkcji do każdego elementu na liściemapjest często używany do przekształcania listy wartości z jednej formy do drugiejmapzwraca iterator, który generuje wyniki w locie, zamiast tworzyć zupełnie nową listę. Może to być bardziej wydajne, jeśli wystarczy powtórzyć wyniki tylko raz, ale oznacza to, że musisz zawinąć wywołanie do mapin list, jeśli chcesz utworzyć nową listę ze wszystkimi wynikami.mapzwraca nową tablicę ze wszystkimi wynikami, więc nie trzeba robić nic specjalnego, aby utworzyć nową listę.map„funkcję strzałki” jako funkcję wywołania zwrotnego, która jest skrótem.w Pythonie:
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']
w Pythonie:
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]
w Pythonie:
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]
w Pythonie:
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]
w Pythonie:
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]
Mam nadzieję, że ten post był pomocny w zapoznaniu Cię z tą mapfunkcją i pokazaniu różnych sposobów, w jakie możesz z niej korzystać. Miłego kodowania!
Na pewno słyszałeś o wszystkich nowych, potężnych wtyczkach ChatGPT, takich jak przeglądarka, interpreter kodu itp. Ale jest problem, dostęp do wtyczek jest ograniczony do listy oczekujących, przez co wielu nie ma do nich dostępu.
W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.
Przejście do nowej kariery może być niezwykle trudne, jeśli spróbujesz zrobić to sam. Ważne jest, aby znaleźć odpowiedzialnych partnerów, którzy są na tym samym poziomie uczenia się co ty, którzy mają podobne cele, wytrwałość i motywację.
Hej, cyberentuzjaści! Witamy ponownie w serii OSINT poświęconej polowaniu na zagrożenia. W pierwszym artykule przedstawiłem przegląd OSINT i jego znaczenie w polowaniu na zagrożenia.
[Ostrzeżenie: ten esej zawiera zrzuty ekranowe ludzi wychwalających mordercę Jordana Neely'ego.] Funkcjonariusze organów ścigania w końcu - i być może niechętnie - oskarżyli Daniela Penny'ego, człowieka, który dusił Jordana Neely'ego aż do śmierci, o to zabójstwo.
Jeśli chcemy dalej prosperować na tej planecie, będziemy musieli prowadzić niebezpieczne rozmowy. Takie, które rzucają wyzwanie temu, co zrobiliśmy, co robimy i co obecnie zamierzamy robić (lub planujemy robić).