Функции за картографиране, филтриране и намаляване в Python: Всичко, което трябва да знаете



Научете какво представляват функциите map (), filter () и reduce () в Python. Също така знайте как да ги използвате с ламбда и дефинирани от потребителя функции и заедно помежду си.

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

Преди да продължим напред, нека да разгледаме съдържанието:





Така че нека да започнем. :)

Какво представляват функциите map (), filter () и reduce () в Python?

Както бе споменато по-рано, map (), filter () и reduce () са вградени на Python. Тези функции позволяват функционалния аспект на програмиране на . Във функционалното програмиране предадените аргументи са единствените фактори, които решават изхода. Тези функции могат да приемат всяка друга функция като параметър и могат да бъдат предоставени и на други функции като параметри. Така че нека сега разгледаме по-задълбочено всяка от тези функции.



Функцията map ():

Функцията map () е тип от по-висок ред. Както бе споменато по-рано, тази функция приема друга функция като параметър, заедно с поредица от итерируеми и връща изход след прилагане на функцията към всеки итерируем присъстващ в последователността. Синтаксисът му е както следва:

СИНТАКСИС:

карта (функция, итерации)



Тук функцията дефинира израз, който от своя страна се прилага към итерациите. Функцията map може да приема и дефинирани от потребителя функции ламбда функции като параметър.

Използване на дефинирани от потребителя и Lambda функции в:

Потребителски дефинирани функции в map ():

Функцията map () може да приема дефинирани от потребителя функции като параметри. Параметрите на тези функции се задават изключително от потребителя или програмиста. Например:

ПРИМЕР:

def newfunc (a): върнете 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): върнете 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 (). Обмислете следния пример:

ПРИМЕР:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = кортеж (карта (lambda x: x + 3, tup)) print (newtuple)

ИЗХОД:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

Горният изход е резултат от прилагането на ламбда израза (x + 3) към всеки елемент, присъстващ в кортежа.

Функцията филтър ():

Функцията filter () се използва за създаване на изходен списък, състоящ се от стойности, за които функцията връща true. Синтаксисът му е следният:

СИНТАКСИС:

филтър (функция, итерации)

Подобно на map (), тази функция може да се използва, може също така да приема дефинирани от потребителя функции, както и ламбда функции като параметър.

ПРИМЕР:

def func (x): ако x> = 3: връщане x y = филтър (func, (1,2,3,4)) print (y) print (list (y))

ИЗХОД:

[3. 4]

Както можете да видите, y е обектът на филтъра, а списъкът е списък със стойности, които са верни за условието (x> = 3).

Използване на ламбда в filter ():


Ламбда функцията, която се използва като параметър, всъщност определя условието, което трябва да бъде проверено. Например:

ПРИМЕР:

y = филтър (ламбда x: (x> = 3), (1,2,3,4)) печат (списък (y))

ИЗХОД: [3. 4]

Горният код дава същия изход като предишната функция.

как да обърна цяло число в python

Функцията за намаляване ():

Функцията намаляване (), както името описва, прилага дадена функция към итерабилите и връща единична стойност.

намаляване-карта намаляване филтър-edureka

Синтаксисът на тази функция е следният:

СИНТАКСИС:

намаляване (функция, итерации)

Функцията тук дефинира какъв израз трябва да се приложи към итерациите. Тази функция трябва да бъде импортирана от functools модул . Например:

ПРИМЕР:

от functools внос намаление намаление (ламбда a, b: a + b, [23,21,45,98])

ИЗХОД: 187

В горния пример функцията за намаляване последователно добавя всяко итеративно присъствие в списъка и връща единичен изход.

Функциите map (), filter () и reduce () в Python могат да се използват заедно помежду си.

Използвайки функциите map (), filter () и reduce () заедно помежду си:

Когато направите това, вътрешните функции първо се решават и след това външните функции работят върху изхода на вътрешните функции.

Нека първо опитаме да предадем функцията filter () като параметър на функцията map ().

Използване на филтър () в картата ():

Кодът, даден по-долу, първо проверява дали условието (x> = 3) е вярно за итерабилите. След това изходът се картографира с помощта на функцията map ().

ПРИМЕР:

c = map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) print (list (c))

ИЗХОД: [6, 8]

Ако филтрирате цели числа, по-големи или равни на 3 от дадения кортеж, получавате [3,4] като резултат. След това, ако картографирате това, използвайки условие (x + x), ще получите [6,8], което е изходът.

Използване на map () във филтъра ():


Когато използвате функцията map () във функцията filter (), итерациите първо се задействат от функцията map и след това условието на filter () се прилага към тях.

ПРИМЕР:

c = филтър (ламбда x: (x> = 3), карта (lambda x: x + x, (1,2,3,4))) # лямбда x: (x> = 3) печат (списък (c) )

ИЗХОД: [4, 6, 8]

Използване на map () и filter () в рамките на reduce ():

Изходът на вътрешните функции се намалява в съответствие с условието, предоставено на функцията намаляване ().

ПРИМЕР:

d = намаляване (ламбда x, y: x + y, карта (ламбда x: x + x, филтър (ламбда x: (x> = 3), (1,2,3,4)))) print (d)

ИЗХОД: 14.

Резултатът е резултат от [6,8], който е резултат от вътрешните функции map () и filter ().

С това стигнахме до края на тази статия за map (), filter () и намаляване на функциите в Python. Надявам се, че сте разбрали всичко ясно. Уверете се, че практикувате възможно най-много и връщате опита си.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „map (), filter () и reduce () Functions in Python“ и ще се свържем с вас възможно най-скоро.

За да получите задълбочени познания за Python заедно с различните му приложения, можете да се регистрирате за живо с 24/7 поддръжка и доживотен достъп.