Python Функція map() з ПРИКЛАДАМИ
⚡ Розумний підсумок
Python map() застосовує задану функцію до кожного елемента ітерованого об'єкта, такого як список, кортеж, набір, словник або рядок. Вона повертає лінивий об'єкт map, який ви конвертуєте за допомогою list() або виконуєте ітерацію за допомогою циклу.
синтаксис
map(function, iterator1,iterator2 ...iteratorN)
Параметри
Ось два важливі параметри:
- функція: Обов'язкова функція, яку потрібно надати map(), що буде застосовано до всіх елементів, доступних в ітераторі.
- ітератор: Обов'язковий ітерований об'єкт. Це може бути список, кортеж тощо. Ви можете передавати кілька об'єктів-ітераторів до функції map().
значення, що повертається
Функція map() застосовує задану функцію до всіх елементів всередині ітератора та повертає ітерований об'єкт map, тобто кортеж, список тощо.
Як працює функція map()?
Функція map() приймає два вхідні дані: функцію та ітерований об'єкт. Функція, що надається map(), є звичайною функцією, і вона перебирає всі значення, присутні в ітерованому об'єкті.
Наприклад, уявіть, що у вас є список чисел, і ви хочете знайти квадрат кожного з чисел.
Щоб отримати результат, нам потрібна функція, яка повертатиме квадрат заданого числа. Ця функція виглядає наступним чином:
def square(n): return n*n
Список елементів, для яких ми хочемо знайти квадрат, такий:
my_list = [2,3,4,5,6,7,8,9]
Тепер скористаємося вбудованою функцією map(), щоб отримати квадрат кожного з елементів у my_list.
Остаточний код виглядає наступним чином:
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Вихід функції map(), як показано вище, є об'єктом карти, що відображається на екрані як .
Вам доведеться перебрати вивід map() за допомогою циклу for або методу list(), щоб отримати кінцевий результат. Я використав list() у коді для відображення значень у заданому списку.
Отже, використовуючи функцію map(), ми можемо отримати квадрат кожного числа. Список, наданий map(), був [2,3,4,5,6,7,8,9], а використовуючи функцію square(), ми отримали результат [4, 9, 16, 25, 36, 49, 64, 81].
Функція map() застосовує функцію square() до всіх елементів списку. Наприклад, вона приймає змінну my_list та оновлює список квадратом кожного числа. Вивід зберігається у змінній updated_list.
Використання map() з Python вбудовані функції
Команда Python Функція map() є вбудованою функцією, і її також можна використовувати з іншими вбудованими функціями, доступними в PythonУ цьому прикладі ми скористаємося Python Вбудована функція round() округляє задані значення.
приклад:
Список, який у мене є, має вигляд my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Мені потрібні округлені значення для кожного елемента у списку, тому ми скористаємося round() як функцією для map().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Функція round() застосовується до всіх елементів у списку та повертає список із округленими значеннями, як показано у виводі.
Використання map() із рядком як ітератор
Ми також можемо використовувати map() для рядка. в Python, рядок діє як масив, тому ми можемо легко використовувати його всередині map().
У цьому прикладі у нас є функція myMapFunc(), яка перетворює заданий рядок у верхній регістр. Функція myMapFunc() надається функції map(). Функція map() перетворює заданий рядок у верхній регістр, передаючи його до myMapFunc().
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
вихід:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Використання map() зі списком Numbers
Щоб працювати зі списком у map(), ми візьмемо список чисел і помножимо кожне число у списку на 10.
Список, який ми будемо використовувати, це [2,3,4,5,6,7,8,9]. Функція myMapFunc() бере на себе множення заданого числа на 10. Функція передається до map() разом зі списком.
приклад:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Вивід, який ми бачимо, полягає в тому, що кожне число у списку множиться на 10.
Використання map() із Tuple
Кортеж - це об'єкт у Python елементи якого розділені комами та укладені в круглі дужки. У цьому прикладі ми візьмемо кортеж зі значеннями рядка. Функція, яку ми використовуватимемо, перетворить задані значення у верхній регістр.
приклад:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Вихід, який ми отримуємо, — це кортеж, у якому всі значення перетворені у верхній регістр.
Використання map() зі словником
A словник в Python створюється за допомогою фігурних дужок ({}). Оскільки словник є ітератором, ви можете використовувати його всередині функції map(). Тепер використаємо словник як ітератор всередині map().
У наступному прикладі показано роботу ітератора словника всередині map():
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
вихід:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Використання map() із Set
Набір у Python — це невпорядкована колекція елементів у фігурних дужках ({}). Оскільки set() також є ітератором, ви можете використовувати його всередині функції map().
Ось робочий приклад використання набору як ітератора всередині map():
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
вихід:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Використання map() із функцією Lambda
In Python, лямбда-вирази використовуються для створення анонімних функцій. Вам доведеться використовувати ключове слово lambda так само, як ви використовуєте def для визначення звичайних функцій.
Отже, у цьому прикладі ми будемо використовувати лямбда-функцію всередині map(). Лямбда-функція помножить кожне значення у списку на 10.
приклад:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Використання кількох ітераторів у функції map()
Приклад 1: Передача двох ітераторів списку до map()
Ви можете одночасно надсилати до функції map() більше одного ітератора, тобто список, кортеж тощо.
Наприклад, якщо ви хочете додати два списки, те саме можна зробити за допомогою функції map(). Ми будемо використовувати два списки, my_list1 та my_list2.
У наведеному нижче прикладі перший елемент зі списку my_list1 додається до першого елемента зі списку my_list2. Функція myMapFunc() приймає елементи зі списків my_list1 та my_list2 і повертає суму обох.
Ось робочий приклад додавання двох заданих списків за допомогою функції map().
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Приклад 2: Передача одного кортежу та ітератора списку до map()
Ми використовуватимемо список та ітератор кортежу у функції map(). Функція myMapFunc(), передана map(), отримає елементи зі списку та кортежу. Елементи будуть з'єднані символом підкреслення (_). Робочий приклад показано нижче:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
вихід:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

