background-shape
feature-image

Это первый мой пост в блоге, который я пишу. И я сразу хотел бы сказать, зачем и почему я вообще решил вести блог.

Я приведу пример. Представьте, что Вам нужно найти какую-либо информацию в интернете, литературных источниках и пр. Как правило, Вы не будете ограничиваться лишь одним источником - и всё для того, чтобы подтвердить ее истинность и посмотреть на вопрос с разных сторон. И Вы, возможно конспектируете.

Идея этого блога для меня - это конспектирование той информации, что я нахожу в интернете во время учебы, выполнения проектов и так далее. Это та информация, которую я нахожу полезной и которая может пригодиться в будущем.

И я надеюсь, что она будет полезна и другим.

Ну что же, приступим…

map() функция

Встроенная в Python функция map() используется для применения какой-либо выбранной Вами функции к каждому элементу итерируемого объекта (например, списка или словаря) и возврата нового итератора для получения результатов. Функция map() возвращает объект map (итератор). Также можно передать объект map в функцию list() или другой тип последовательности для создания итерируемого объекта.

Синтаксис:

map(function, iterable, [iterable_2, iterable_3, ...])

Синтаксис map() с функцией lambda выглядит следующим образом:

map(lambda item: item[] expression, iterable)

К примеру, представим следующую программу:

У нас есть два списка чисел.

a = [1,2,3,4,5]
b = [3,15,10,20,1]

И мы хотим суммировать эти списки, причем применяя к каждому элементу первого списка операцию *2, а к каждому элементу второго списка - /2.

summed_numbers = list(map(lambda x,y:x*2 + y/2, a, b))
print(summed_numbers)
--- OUTPUT ---
[3.5, 11.5, 11.0, 18.0, 10.5]

filter() функция

Встроенная функция filter() также является весьма полезной. Что же она делает?

Данная функция принимает лямбда-функцию вместе со списком как аргументы. Синтаксис выглядит следующим образом:

filter(object, iterable)

object должен быть лямбда-функцией, которая возвращает булево значение (0 или 1). Данная функция вызывается для каждого элемента списка iterable. И результат будет либо “Ложь”, либо “Истина” для каждого элемента.

Лямбда-функция возвращает список тех элементов, которые возвратили “Истину” после применения лямбда-функции.

К примеру, представим следующую программу:

# дан список чисел
numbers_list = [2, -6, 18, 11, 4, 12, -7, 13, 17]

# Оставим в списке только те числа, которые больше 7
filtered_list = list(filter(lambda num: (num > 7), numbers_list))

print(filtered_list)

Результат выполнения программы:

---OUTPUT---
[18, 11, 12, 13, 17]

На примере обзора таких простых программ с применением функций map() и filter() понятно, что эти функции могут быть действительно полезны в некоторых случаях, когда нужно что-то фильтровать или же применять какую-то одну операцию к целому массиву данных.