Python предоставляет множество встроенных функций, которые предопределены и могут использоваться конечным пользователем, просто вызывая их. Эти функции не только облегчают работу программистов, но и создают стандартную среду программирования. В этой статье вы узнаете о трех таких впечатляющих функциях, а именно о map (), filter и reduce () в .
Прежде чем двигаться дальше, давайте взглянем на содержимое:
- Что такое функции map, filter и reduce в Python?
- Использование пользовательских и лямбда-функций в:
- Использование функций map (), filter () и reduce () вместе друг с другом
Итак, приступим. :)
Что такое функции map (), filter () и reduce () в Python?
Как упоминалось ранее, map (), filter () и reduce () встроены Python. Эти функции обеспечивают функциональное программирование . В функциональном программировании переданные аргументы являются единственными факторами, влияющими на результат. Эти функции могут принимать любую другую функцию в качестве параметра и могут также передаваться другим функциям в качестве параметров. Итак, давайте теперь более подробно рассмотрим каждую из этих функций.
Функция map ():
Функция map () - это тип высшего порядка. Как упоминалось ранее, эта функция принимает другую функцию в качестве параметра вместе с последовательностью итераций и возвращает результат после применения функции к каждой итерации, присутствующей в последовательности. Его синтаксис следующий:
СИНТАКСИС:
карта (функция, итерации)
Здесь функция определяет выражение, которое, в свою очередь, применяется к итерациям. Функция карты может принимать пользовательские функции, а также лямбда-функции в качестве параметра.
Использование пользовательских и лямбда-функций в:
Пользовательские функции в map ():
Функция map () может принимать пользовательские функции в качестве параметров. Параметры этих функций устанавливаются исключительно пользователем или программистом. Например:
метод system.exit завершит приложение.
ПРИМЕР:
def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x - объект карты print (x) print (set (x))
ВЫВОД:
{16, 1, 4, 9}
Как видите, x - это объект карты. В выходных данных следующей части отображается функция карты, принимающая newfunc () в качестве параметра, а затем она применяет a * a ко всем итерациям. В результате значения всех итераций умножаются сами на себя и возвращаются.
НОТА: Вывод не в порядке значений итераций, потому что я использовал функцию set (). Вы также можете использовать функции list () или tuple (), например:
ПРИМЕР:
def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x - объект карты print (x) print (list (x))
ВЫВОД:
[1, 4, 9, 16]
Вы также можете передать более одного списка параметров. Например:
ПРИМЕР:
def func (a, b): вернуть a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))
ВЫВОД:
(3, 6, 8)
Теперь давайте посмотрим, как вы можете использовать лямбда-функции внутри функции map ().
Лямбда-функции в map ():
Лямбда-функции - это функции, у которых есть любое имя. Эти функции часто предоставляются в качестве параметров другим функциям. Теперь давайте попробуем встроить лямбда-функции в функцию map (). Рассмотрим следующий пример:
ПРИМЕР:
tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (лямбда x: x + 3, tup)) print (newtuple)
ВЫВОД:
(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)
Приведенный выше результат является результатом применения лямбда-выражения (x + 3) к каждому элементу, присутствующему в кортеже.
Функция filter ():
Функция filter () используется для создания списка вывода, состоящего из значений, для которых функция возвращает истину. Его синтаксис следующий:
СИНТАКСИС:
передать по значению vs передать по ссылке java
фильтр (функция, итерации)
Так же, как и map (), эта функция может также принимать пользовательские функции, а также лямбда-функции в качестве параметра.
ПРИМЕР:
def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))
ВЫВОД:
[3. 4]
Как видите, y - это объект фильтра, а список - это список значений, которые истинны для условия (x> = 3).
Использование лямбда в filter ():
Лямбда-функция, которая используется в качестве параметра, фактически определяет условие, которое необходимо проверить. Например:
ПРИМЕР:
y = filter (лямбда x: (x> = 3), (1,2,3,4)) print (list (y))
ВЫВОД: [3. 4]
Приведенный выше код дает тот же результат, что и предыдущая функция.
Функция reduce ():
Функция reduce (), как описывает ее название, применяет заданную функцию к итерациям и возвращает единственное значение.
Синтаксис этой функции следующий:
СИНТАКСИС:
уменьшить (функция, итерации)
Здесь функция определяет, какое выражение необходимо применить к итерациям. Эта функция должна быть импортирована из functools. модуль . Например:
ПРИМЕР:
из functools import reduce reduce (лямбда a, b: a + b, [23,21,45,98])
ВЫВОД: 187
В приведенном выше примере функция сокращения последовательно добавляет каждую итерацию, присутствующую в списке, и возвращает единственный результат.
Функции map (), filter () и reduce () в Python можно использовать вместе друг с другом.
это vs имеет Java
Использование функций map (), filter () и reduce () вместе друг с другом:
Когда вы это делаете, сначала решаются внутренние функции, а затем внешние функции работают с выходными данными внутренних функций.
Давайте сначала попробуем передать функцию filter () в качестве параметра функции map ().
Использование filter () внутри map ():
Приведенный ниже код сначала проверяет, выполняется ли условие (x> = 3) для итераций. Затем вывод отображается с помощью функции map ().
ПРИМЕР:
c = map (лямбда x: x + x, фильтр (лямбда x: (x> = 3), (1,2,3,4))) print (list (c))
ВЫВОД: [6, 8]
Если вы отфильтруете целые числа больше или равные 3 из заданного кортежа, вы получите в результате [3,4]. Затем, если вы сопоставите это с помощью условия (x + x), вы получите [6,8], что является выходом.
Использование map () в filter ():
Когда вы используете функцию map () в функции filter (), итерируемые объекты сначала обрабатываются функцией map, а затем к ним применяется условие filter ().
ПРИМЕР:
c = filter (lambda x: (x> = 3), map (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (list (c) )
ВЫВОД: [4, 6, 8]
Использование map () и filter () в reduce ():
Вывод внутренних функций сокращается в соответствии с условием, заданным для функции reduce ().
ПРИМЕР:
d = reduce (lambda x, y: x + y, map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)
ВЫВОД: 14
Вывод является результатом [6,8], который является результатом внутренних функций map () и filter ().
На этом мы подошли к концу статьи о функциях map (), filter () и reduce в Python. Надеюсь, вы все ясно поняли. Убедитесь, что вы тренируетесь как можно больше и верните свой опыт.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Функции map (), filter () и reduce () в Python», и мы свяжемся с вами как можно скорее.
Чтобы получить более глубокие знания о Python и его различных приложениях, вы можете зарегистрироваться в режиме реального времени. с круглосуточной поддержкой и пожизненным доступом.