As funções Lambda em Python são uma maneira poderosa de criar funções pequenas e anônimas dinamicamente. Essas funções são normalmente usadas para operações curtas e simples, onde a sobrecarga de uma definição completa de função seria desnecessária.
Enquanto as funções tradicionais são definidas usando a palavra-chave def, as funções Lambda são definidas usando a palavra-chave lambda e são integradas diretamente nas linhas de código. Em particular, eles são frequentemente usados como argumentos para funções integradas. Eles permitem que os desenvolvedores escrevam códigos limpos e legíveis, eliminando a necessidade de definições de funções temporárias.
Neste artigo, abordaremos o que as funções Lambda fazem e sua sintaxe. Também forneceremos alguns exemplos e práticas recomendadas para usá-los e discutiremos seus prós e contras.
As funções Lambda fazem parte do Python desde a versão 2.0, então você precisará de:
Neste tutorial, veremos como usar funções Lambda com a biblioteca Pandas: uma biblioteca de análise e manipulação de dados de código aberto rápida, poderosa, flexível e fácil de usar. Se você não o tiver instalado, execute o seguinte:
pip install pandas
Primeiro, vamos definir a sintaxe que os desenvolvedores devem usar para criar funções Lambda.
Uma função Lambda é definida usando a palavra-chave lambda, seguida por um ou mais argumentos e uma expressão:
lambda arguments: expression
Vamos imaginar que queremos criar uma função Lambda que some dois números:
add = lambda x, y: x y
Execute o seguinte:
result = add(3, 5) print(result)
Isso resulta em:
8
Criamos uma função anônima que recebe dois argumentos, x e y. Ao contrário das funções tradicionais, as funções Lambda não têm nome: é por isso que dizemos que são "anônimas".
Além disso, não usamos a instrução return, como fazemos em funções regulares do Python. Portanto, podemos usar a função Lambda à vontade: ela pode ser impressa (como fizemos neste caso), armazenada em uma variável, etc.
Agora vamos ver alguns casos de uso comuns para funções Lambda.
As funções Lambda são particularmente usadas em situações em que precisamos de uma função temporariamente simples. Em particular, eles são comumente usados como argumentos para funções de ordem superior.
Vejamos alguns exemplos práticos.
map() é uma função integrada que aplica uma determinada função a cada item de um iterável e retorna um objeto de mapa com os resultados.
Por exemplo, digamos que queremos calcular as raízes quadradas de cada número em uma lista. Poderíamos usar uma função Lambda assim:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Isso resulta em:
[1, 4, 9, 16]
Agora temos uma lista contendo as raízes quadradas dos números iniciais.
Como podemos ver, isso simplifica muito os processos para usar funções em tempo real que não precisam ser reutilizadas posteriormente.
Agora, suponha que temos uma lista de números e queremos filtrar números pares.
Podemos usar uma função Lambda da seguinte maneira:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
Isso resulta em:
[2,4]
A função sorted() em Python retorna uma nova lista ordenada dos elementos de qualquer iterável. Usando funções Lambda, podemos aplicar critérios de filtragem específicos a essas listas.
Por exemplo, suponha que temos uma lista de pontos em duas dimensões: (x,y). Queremos criar uma lista que ordene os valores de y de forma incremental.
Podemos fazer assim:
# Creates a list of points points = [(1, 2), (3, 1), (5, -1)] # Sort the points and print points_sorted = sorted(points, key=lambda point: point[1]) print(points_sorted)
E obtemos:
[(5, -1), (3, 1), (1, 2)]
Devido à sua concisão, as funções Lambda podem ser incorporadas em compreensões de lista para cálculos instantâneos.
Suponha que temos uma lista de números. Queremos:
Veja como podemos fazer isso:
# Create a list of numbers numbers = [1, 2, 3, 4] # Calculate and print the double of each one squared = [(lambda x: x ** 2)(x) for x in numbers] print(squared)
E obtemos:
[1, 4, 9, 16]
Dados os exemplos que exploramos, vamos examinar algumas vantagens do uso de funções Lambda:
Vamos discutir brevemente algumas limitações e desvantagens das funções Lambda em Python:
Agora que consideramos alguns prós e contras, vamos definir algumas práticas recomendadas para usar funções Lambda de maneira eficaz:
Em certos casos, técnicas mais avançadas de função Lambda podem ser úteis.
Vejamos alguns exemplos.
As funções Lambda podem ser aninhadas para operações complexas.
Essa técnica é útil em cenários onde você precisa ter várias pequenas transformações em uma sequência.
Por exemplo, suponha que você queira criar uma função que calcule a raiz quadrada de um número e depois adicione 1. Veja como você pode usar funções Lambda para fazer isso:
# Create a nested lambda function nested_lambda = lambda x: (lambda y: y ** 2)(x) 1 # Print the result for the value 3 print(nested_lambda(3))
Você obtém:
10
Muitas bibliotecas Python aproveitam funções Lambda para simplificar tarefas complexas de processamento de dados.
Por exemplo, funções Lambda podem ser usadas com Pandas e NumPy para simplificar a manipulação e transformação de dados.
Suponha que temos um quadro de dados com duas colunas. Queremos criar outra coluna que seja a soma das outras duas. Nesse caso, podemos usar funções Lambda da seguinte forma:
# Create the columns' data data = {'A': [1, 2, 3], 'B': [4, 5, 6]} # Create data frame df = pd.DataFrame(data) # Create row C as A B and print the dataframe df['C'] = df.apply(lambda row: row['A'] row['B'], axis=1) print(df)
E obtemos:
A B C 0 1 4 5 1 2 5 7 2 3 6 9
É isso o nosso tour rápido pelas funções Lambda em Python!
Neste artigo, vimos como usar funções Lambda em Python, exploramos seus prós e contras, algumas práticas recomendadas e abordamos alguns casos de uso avançados.
Boa codificação!
P.S. Se você quiser ler as postagens sobre Python assim que forem publicadas, assine nosso boletim informativo Python Wizardry e nunca perca uma única postagem!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3