Python функція map() із ПРИКЛАДАМИ
Python map() застосовує функцію до всіх елементів ітератора, заданого як вхідні дані. Ітератор, наприклад, може бути списком, кортежем, набором, словником, рядком і повертає ітерований об’єкт карти. Python map() є вбудованою функцією.
синтаксис
map(function, iterator1,iterator2 ...iteratorN)
параметри
Ось дві важливі
- функція: обов’язкова функція, яку потрібно надати карті, яка буде застосована до всіх елементів, доступних в ітераторі.
- ітератор: ітерований обов’язковий об’єкт. Це може бути список, кортеж тощо. Ви можете передати декілька об’єктів-ітераторів у функцію map().
значення, що повертається
Функція map() застосує дану функцію до всіх елементів всередині ітератора та поверне ітерований об’єкт карти, тобто кортеж, список тощо.
Як працює функція map()?
Функція map() приймає два входи як функцію та ітерований об’єкт. Функція, надана для map(), є звичайною функцією, і вона буде перебирати всі значення, наявні в заданому ітерованому об’єкті.
Наприклад, уявіть, що у вас є список чисел, і ви хочете знайти квадрат кожного з чисел.
Щоб отримати результат, нам потрібна функція, яка повертатиме квадрат заданого числа. Функція буде виглядати так:
def square(n): return n*n
Список предметів, які ми хочемо знайти в квадраті, такий:
my_list = [2,3,4,5,6,7,8,9]
Тепер скористаємося вбудованою функцією map() python, щоб отримати квадрат кожного з елементів у 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(), як видно з вихідних даних, є об’єктом карти, який відображається на екрані як .
Щоб отримати кінцевий результат, вам доведеться повторити виведення з карти за допомогою циклу for або методу list(). Я використав list() у коді, який відображає значення всередині наданого списку.
Таким чином, за допомогою функції map() ми можемо отримати квадрат кожного числа. Список, наданий для map, був [2,3,4,5,6,7,8,9], а за допомогою функції square() вихід з map() ми отримали [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() із listof Numbers
Для роботи зі списком у map() буде взято список чисел і помножено кожне число в списку на 10.
Список, який ми збираємося використовувати, такий: [2,3,4,5,6,7,8,9]. Функція myMapFunc () виконує функцію множення заданого числа на 10. Функція надається для відображення разом зі списком.
приклад:
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().
Ось робочий приклад використання set як ітератора в 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(). Функція надається для map – myMapFunc() отримає елементи зі списку та Tuple. Елементи будуть об’єднані знаком підкреслення (_). Нижче показано робочий приклад:
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']
Підсумки
- Python map() — це вбудована функція, яка застосовує функцію до всіх елементів ітератора, наданого як вхідні дані. Ітератор, наприклад, може бути списком, кортежем, рядком тощо, і він повертає ітерований об’єкт карти.
- Функція map() застосує дану функцію до всіх елементів всередині ітератора та поверне ітерований об’єкт карти, тобто кортеж, список тощо.
- Python Функція map() є вбудованою функцією, і її також можна використовувати з іншими вбудованими функціями, доступними в Python.
- Кортеж - це об'єкт у Python який містить елементи, розділені комами та взяті в круглі дужки. У прикладі візьмемо кортеж із рядковими значеннями. Функція, яку ми будемо використовувати, перетворить надані значення у верхній регістр.
- Словник в Python створюється за допомогою фігурних дужок ({}). Оскільки словник є ітератором, ви можете використовувати його всередині функції map().
- Встановити в Python це невпорядкована колекція елементів у фігурних дужках (()). Оскільки set() також є ітератором, ви можете використовувати його всередині функції map().
- In Python, лямбда-вирази (або лямбда-форми) використовуються для створення анонімних функцій. Тому ключове слово lambda слід використовувати, якщо ви хочете використовувати lambda всередині map().
- Ви можете надіслати більше ніж один ітератор, тобто список, кортеж до функції map().