Что такое карта, фильтр и сокращение в python?

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

Эмпирическое правило, которое вы используете для определения того, какой метод вы должны использовать, выглядит следующим образом:

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

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

Синтаксис

 
map(function_to_apply, list_of_inputs)
  1. function_to_apply - map() передает каждый элемент итерабельности этой функции.
  2. list_of_inputs - iterable, который является для сопоставления

example

 
def square(n): return n*n
map_inputs = (1, 2, 3, 4)
map_ret = map(square, map_inputs)
print(map_ret)
list_square = list(map_ret)
print(list_square)

Выход

 
< map object at 0x000000000293CF60 >
[1, 4, 9, 16]

В большинстве случаев функция карты использует lambdas.

 
map_inputs = (1, 2, 3, 4)
map_ret = map(lambda n: n**2, map_inputs)
print(map_ret)
list_square = list(map_ret)
print(list_square)

Выход

 
< map object at 0x00000000028AC4E0 >
[1, 4, 9, 16]

или

 
map_inputs = (1, 2, 3, 4)
print(list(map(lambda n: n**2, map_inputs)))

Выход

 
[1, 4, 9, 16]

Фильтр

Функция фильтра работает в списке и возвращает подмножество этого списка после применения правила фильтрации.

Пример

 
in_list = [98,99,100,101,102]
out_list = filter(lambda x: x > 100, in_list)
print(list(out_list))

Выход

 
[101, 102]

Снизить

Функция уменьшения преобразует данный список в одно значение, непрерывно применяя заданную функцию ко всем элементам. Он в основном продолжает работать на парах элементов, пока осталось больше элементов.

В следующем примере показано, как найти произведение заданных чисел.

 
result = 1
in_num = [1, 2, 3, 4,5]
for num in in_num:
    result = result * num
print(result)

Выход

 
120

Использование метода «Уменьшить»:

 
from functools import reduce
result = reduce((lambda x, y: x * y), [1, 2, 3, 4,5])
print(result)

Выход

 
120

Источник: http://net-informations.com/python/iq/map.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector