Funções lambda em [[Linguagem de programação Python|Python]] são funções anônimas, pequenas e de uso único. Elas são definidas usando a palavra-chave `lambda` e são frequentemente usadas em situações onde uma função simples é necessária por um curto período de tempo. # Sintaxe A sintaxe de uma função lambda é: ```python lambda argumentos: expressão ``` * `lambda`: Palavra-chave para definir uma função lambda. * `argumentos`: Lista de argumentos (separados por vírgulas, se houver mais de um). * `expressão`: Uma única expressão que é avaliada e retornada pela função. # Exemplos ## Função lambda simples ```python # Eleva um número ao quadrado square = lambda x: x * x print(square(5)) # Saída: 25 ```` ## Função lambda com múltiplos argumentos ```python # Soma dois números soma = lambda x, y: x + y print(soma(3, 4)) # Saída: 7 ``` ## Função lambda sem argumentos ```python # Retorna uma string saudacao = lambda: "Olá!" print(saudacao()) # Saída: Olá! ``` ## Comparação com função `def` A função lambda acima é equivalente a: ```python def saudacao_def(): return "Olá!" ``` # Uso com Funções de Ordem Superior Funções lambda são frequentemente usadas como argumentos para [Funções de Ordem Superior em Python](app://obsidian.md/Fun%C3%A7%C3%B5es%20de%20Ordem%20Superior%20em%20Python), como `map`, `filter` e `sort`. ## Exemplo com `sort` ```python people = [ {"name": "Harry", "house": "Gryffindor"}, {"name": "Cho", "house": "Ravenclaw"}, {"name": "Draco", "house": "Slytherin"} ] # Ordena a lista de pessoas pelo nome people.sort(key=lambda person: person["name"]) print(people) # Saída: # [{'name': 'Cho', 'house': 'Ravenclaw'}, {'name': 'Draco', 'house': 'Slytherin'}, {'name': 'Harry', 'house': 'Gryffindor'}] ``` Neste exemplo, a função `sort` usa uma função lambda para definir a chave de ordenação. A função lambda recebe um dicionário `person` como entrada e retorna o valor da chave `"name"`. Isso faz com que a lista seja ordenada alfabeticamente pelo nome das pessoas. ## Ordenando por casa Para ordenar por casa, basta mudar a função lambda: ```python people.sort(key=lambda person: person["house"]) print(people) #Saída: #[{'name': 'Harry', 'house': 'Gryffindor'}, {'name': 'Cho', 'house': 'Ravenclaw'}, {'name': 'Draco', 'house': 'Slytherin'}] ``` # Vantagens e Desvantagens - **Vantagens:** Concisão, conveniência para funções simples e de uso único. - **Desvantagens:** Legibilidade limitada para lógicas complexas, falta de nome (dificulta o debugging). :: **Referência:** :: [Site W3schools sobre funções lambda em Python](https://www.w3schools.com/python/python_lambda.asp)