# Лямбда-функции

### **1. Что такое лямбда-функция**

* Лямбда-функция — это **анонимная функция**, которую можно написать в одну строку.
* Используется для **простых операций**, когда не хочется создавать полноценную функцию через `def`.

#### **Синтаксис**

```python
lambda аргументы: выражение
```

* **аргументы** — входные параметры
* **выражение** — возвращаемое значение (всегда одно выражение)

***

### **2. Примеры**

#### **2.1 Простая лямбда**

```python
add = lambda x, y: x + y
print(add(5, 3))  # 8
```

#### **2.2 Использование в `map`**

```python
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16]
```

#### **2.3 Использование в `filter`**

```python
numbers = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)  # [2, 4]
```

#### **2.4 Использование в `sorted`**

```python
data = [("Alice", 25), ("Bob", 20)]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)  # [('Bob', 20), ('Alice', 25)]
```

***

### **3. Отличие от обычной функции**

| Характеристика       | Обычная функция (`def`) | Лямбда-функция                               |
| -------------------- | ----------------------- | -------------------------------------------- |
| Имя                  | Может иметь имя         | Обычно анонимная, можно присвоить переменной |
| Количество выражений | Может быть несколько    | Только одно выражение                        |
| Синтаксис            | Более длинный           | Короткий, однострочный                       |

***

### **4. Применение в автотестах**

* Быстро **создавать функции для сортировки, фильтрации или проверки данных**.
* Использовать в **параметризации тестов** и генерации данных.

```python
# Проверка, что все элементы списка четные
assert all(map(lambda x: x % 2 == 0, [2, 4, 6]))
```

* Удобно при работе с **key-функциями в Selenium или pandas**:

```python
elements = driver.find_elements_by_tag_name("li")
texts = list(map(lambda e: e.text, elements))
```

***

💡 **Вывод:**

* Лямбда-функции = компактные одноразовые функции.
* Идеальны для **простых операций, фильтрации, сортировки и работы с коллекциями**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-python/lyambda-funkcii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
