Mapear, filtrar e reduzir funções em Python: tudo que você precisa saber



Aprenda o que são funções map (), filter () e reduce () em Python. Saiba também como usá-los com lambda e funções definidas pelo usuário e junto com os outros.

Python fornece muitas funções integradas que são predefinidas e podem ser usadas pelo usuário final apenas chamando-as. Essas funções não apenas facilitam o trabalho dos programadores, mas também criam um ambiente de codificação padrão. Neste artigo, você aprenderá sobre três funções impressionantes: mapear (), filtrar e reduzir () em .

Antes de prosseguir, vamos dar uma olhada no conteúdo:





Então vamos começar. :)

O que são funções map (), filter () e reduce () em Python?

Conforme mencionado anteriormente, map (), filter () e reduce () são embutidos de Python. Essas funções permitem o aspecto de programação funcional de . Na programação funcional, os argumentos passados ​​são os únicos fatores que decidem sobre a saída. Essas funções podem assumir qualquer outra função como parâmetro e também podem ser fornecidas a outras funções como parâmetros. Portanto, vamos agora dar uma olhada mais profunda em cada uma dessas funções.



A função map ():

A função map () é um tipo de ordem superior. Conforme mencionado anteriormente, essa função recebe outra função como parâmetro junto com uma sequência de iteráveis ​​e retorna uma saída após aplicar a função a cada iterável presente na sequência. Sua sintaxe é a seguinte:

SINTAXE:

map (função, iteráveis)



Aqui, a função define uma expressão que, por sua vez, é aplicada aos iteráveis. A função de mapa pode assumir funções definidas pelo usuário, bem como funções lambda como um parâmetro.

Usando funções definidas pelo usuário e Lambda em:

Funções definidas pelo usuário em map ():

A função map () pode assumir funções definidas pelo usuário como parâmetros. Os parâmetros dessas funções são definidos exclusivamente pelo usuário ou pelo programador. Por exemplo:

EXEMPLO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x é o objeto do mapa print (x) print (set (x))

RESULTADO:

{16, 1, 4, 9}

Como você pode ver, x é um objeto de mapa. A saída da próxima parte exibe a função de mapa tendo newfunc () como seu parâmetro e então aplica o a * a a todos os iteráveis. Como resultado, os valores de todos os iteráveis ​​são multiplicados por si próprios e retornados.

NOTA: A saída não está na ordem dos valores dos iteráveis ​​porque usei a função set (). Você também pode usar as funções list () ou tupla (), por exemplo:

EXEMPLO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x é o objeto do mapa print (x) print (list (x))

RESULTADO:

[1, 4, 9, 16]

Você também pode passar mais de uma lista de parâmetros. Por exemplo:

EXEMPLO:

def func (a, b): retorna a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tupla (a))

RESULTADO:

(3, 6, 8)

Agora vamos ver como você pode usar funções lambda dentro da função map ().

Funções Lambda em map ():

As funções lambda são funções que têm qualquer nome. Essas funções são freqüentemente fornecidas como parâmetros para outras funções. Agora, vamos tentar incorporar funções lambda na função map (). Considere o seguinte exemplo:

EXEMPLO:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x: x + 3, tup)) print (newtuple)

RESULTADO:

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

A saída acima é o resultado da aplicação da expressão lambda (x + 3) a cada item presente na tupla.

A função filter ():

A função filter () é usada para criar uma lista de saída que consiste em valores para os quais a função retorna true. A sintaxe é a seguinte:

SINTAXE:

filtro (função, iteráveis)

Assim como map (), esta função pode ser usada também pode receber funções definidas pelo usuário, bem como funções lambda como um parâmetro.

EXEMPLO:

def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

RESULTADO:

qual é a diferença entre c ++ e java

[3,4]

Como você pode ver, y é o objeto de filtro e a lista é uma lista de valores que são verdadeiros para a condição (x> = 3).

Usando lambda dentro do filtro ():


A função lambda que é usada como parâmetro realmente define a condição que deve ser verificada. Por exemplo:

EXEMPLO:

y = filtro (lambda x: (x> = 3), (1,2,3,4)) imprimir (lista (y))

RESULTADO: [3,4]

O código acima produz a mesma saída da função anterior.

A função reduz ():

A função reduz (), como o nome descreve, aplica uma determinada função aos iteráveis ​​e retorna um único valor.

reduzir-mapa reduzir filtro-edureka

A sintaxe desta função é a seguinte:

SINTAXE:

reduzir (função, iteráveis)

A função aqui define qual expressão precisa ser aplicada aos iteráveis. Esta função precisa ser importada das ferramentas de função módulo . Por exemplo:

EXEMPLO:

das funções de importação, redução, redução (lambda a, b: a + b, [23,21,45,98])

RESULTADO: 187

No exemplo acima, a função de redução adiciona consecutivamente cada iterável presente na lista e retorna uma única saída.

As funções map (), filter () e reduce () em Python podem ser usadas juntas.

Usando as funções map (), filter () e reduce () em conjunto:

Ao fazer isso, as funções internas são resolvidas primeiro e, em seguida, as funções externas operam na saída das funções internas.

Vamos primeiro tentar passar a função filter () como um parâmetro para a função map ().

Usando filtro () no mapa ():

O código fornecido a seguir primeiro verifica se a condição (x> = 3) é verdadeira para os iteráveis. Então, a saída é mapeada usando a função map ().

EXEMPLO:

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

RESULTADO: [6, 8]

Se você filtrar inteiros maiores ou iguais a 3 da tupla fornecida, obterá [3,4] como resultado. Então, se você mapear isso usando a condição (x + x), você obterá [6,8], que é a saída.

Usando map () dentro do filtro ():


Quando você usa a função map () dentro da função filter (), os iteráveis ​​são operados primeiro pela função map e, em seguida, a condição de filter () é aplicada a eles.

EXEMPLO:

c = filtro (lambda x: (x> = 3), mapa (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) imprimir (lista (c) )

RESULTADO: [4, 6, 8]

Usando map () e filter () em reduce ():

A saída das funções internas é reduzida de acordo com a condição fornecida para a função reduz ().

EXEMPLO:

d = reduzir (lambda x, y: x + y, map (lambda x: x + x, filtro (lambda x: (x> = 3), (1,2,3,4)))) imprimir (d)

RESULTADO: 14

A saída é o resultado de [6,8], que é o resultado das funções internas map () e filter ().

Com isso, chegamos ao final deste artigo nas funções map (), filter () e reduce em Python. Espero que você tenha entendido tudo claramente. Pratique o máximo possível e reverta sua experiência.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “map (), filter () e reduce () Functions in Python” e entraremos em contato com você o mais breve possível.

Para obter conhecimento aprofundado sobre Python, juntamente com seus vários aplicativos, você pode se inscrever para com suporte 24/7 e acesso vitalício.