Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вбудовані Функції | Функція як Аргумент
Середній Рівень Python: Аргументи, Генератори та Декоратори
course content

Зміст курсу

Середній Рівень Python: Аргументи, Генератори та Декоратори

Середній Рівень Python: Аргументи, Генератори та Декоратори

1. Пакування та Розпакування
2. Аргументи Функції
3. Функція як Аргумент
4. Область видимості змінних
5. Декоратори

book
Вбудовані Функції

Ось ще два приклади, що демонструють використання lambda функцій з функціями filter() та sorted() у Python.

Крім того, ви можете передати більш складну користувацьку функцію замість лямбди до цих функцій високого порядку.

filter()

Функція filter() використовується для створення ітератора в якому відфільтровані всі елементи, що задовільняють умову функції. Тобто, lambda або користувацька функція повинна повернути True на прийнятий елемент масиву. Ось приклад використання filter() з лямбда-функцією для відфільтрації непарних чисел зі списку:

12345678
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Використання lambda функції для відфільтрування непарних чисел even_numbers = filter(lambda x: x % 2 == 0, numbers) # Конвертція об'єкту filter у список even_numbers_list = list(even_numbers) print(even_numbers_list)
copy

У цьому прикладі лямбда-функція lambda x: x % 2 == 0 перевіряє чи є число парним. Функція filter() застосовує цю лямбду до кожного елемента у списку чисел і повертає ітератор парних чисел.

sorted()

Функція sorted() повертає новий відсортований список з елементів будь-якого масиву.

  • iterable - це послідовність для сортування (список, дикт, кортеж тощо);
  • key - це функція, яку потрібно виконати для визначення порядку;
  • reverse - булева функція. False - це порядок за зростанням, а True - за спаданням. За замовчуванням використовується значення False.

Ось приклад використання sorted() з лямбда-функцією для сортування списку кортежів на основі другого елемента в кожному кортежі:

123456
tuples = [(1, 'banana'), (2, 'apple'), (3, 'orange')] # Використовуємо lambda функцію для сортування за другим елементом кожного кортежу sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
copy

У цьому прикладі лямбда-функція lambda x: x[1] повертає другий елемент кожного кортежу. Потім функція sorted() сортує кортежі списку на основі цих других елементів, в результаті чого список буде відсортовано по назвам фруктів за алфавітом.

Завдання
test

Swipe to show code editor

Розглянемо список словників, що представляють книги, і ви хочете відфільтрувати книги, які мають певну кількість сторінок.

  1. Визначить список книг. Нехай books - це список словників. Кожен словник представляє книгу з двома ключами: 'title' та "pages ".
  2. Створення користувацької функції has_many_pages, яка приймає аргументи book та min_pages.
  3. Використання filter() з користувацькою функцією.
  4. Перетворення об'єкта filter у список, збереження його у змінній filtered_books_list і друк за допомогою print.
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
toggle bottom row

book
Вбудовані Функції

Ось ще два приклади, що демонструють використання lambda функцій з функціями filter() та sorted() у Python.

Крім того, ви можете передати більш складну користувацьку функцію замість лямбди до цих функцій високого порядку.

filter()

Функція filter() використовується для створення ітератора в якому відфільтровані всі елементи, що задовільняють умову функції. Тобто, lambda або користувацька функція повинна повернути True на прийнятий елемент масиву. Ось приклад використання filter() з лямбда-функцією для відфільтрації непарних чисел зі списку:

12345678
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Використання lambda функції для відфільтрування непарних чисел even_numbers = filter(lambda x: x % 2 == 0, numbers) # Конвертція об'єкту filter у список even_numbers_list = list(even_numbers) print(even_numbers_list)
copy

У цьому прикладі лямбда-функція lambda x: x % 2 == 0 перевіряє чи є число парним. Функція filter() застосовує цю лямбду до кожного елемента у списку чисел і повертає ітератор парних чисел.

sorted()

Функція sorted() повертає новий відсортований список з елементів будь-якого масиву.

  • iterable - це послідовність для сортування (список, дикт, кортеж тощо);
  • key - це функція, яку потрібно виконати для визначення порядку;
  • reverse - булева функція. False - це порядок за зростанням, а True - за спаданням. За замовчуванням використовується значення False.

Ось приклад використання sorted() з лямбда-функцією для сортування списку кортежів на основі другого елемента в кожному кортежі:

123456
tuples = [(1, 'banana'), (2, 'apple'), (3, 'orange')] # Використовуємо lambda функцію для сортування за другим елементом кожного кортежу sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
copy

У цьому прикладі лямбда-функція lambda x: x[1] повертає другий елемент кожного кортежу. Потім функція sorted() сортує кортежі списку на основі цих других елементів, в результаті чого список буде відсортовано по назвам фруктів за алфавітом.

Завдання
test

Swipe to show code editor

Розглянемо список словників, що представляють книги, і ви хочете відфільтрувати книги, які мають певну кількість сторінок.

  1. Визначить список книг. Нехай books - це список словників. Кожен словник представляє книгу з двома ключами: 'title' та "pages ".
  2. Створення користувацької функції has_many_pages, яка приймає аргументи book та min_pages.
  3. Використання filter() з користувацькою функцією.
  4. Перетворення об'єкта filter у список, збереження його у змінній filtered_books_list і друк за допомогою print.
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
We're sorry to hear that something went wrong. What happened?
some-alt