single
Вбудовані Функції
Свайпніть щоб показати меню
Ось ще два приклади, що демонструють використання lambda функцій з функціями filter() та sorted() у Python.
Крім того, ви можете передати більш складну користувацьку функцію замість лямбди до цих функцій високого порядку.
filter()
Функція filter() використовується для створення ітератора в якому відфільтровані всі елементи, що задовільняють умову функції. Тобто, lambda або користувацька функція повинна повернути True на прийнятий елемент масиву. Ось приклад використання filter() з лямбда-функцією для відфільтрації непарних чисел зі списку:
12345678numbers = [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)
У цьому прикладі лямбда-функція lambda x: x % 2 == 0 перевіряє чи є число парним. Функція filter() застосовує цю лямбду до кожного елемента у списку чисел і повертає ітератор парних чисел.
sorted()
Функція sorted() повертає новий відсортований список з елементів будь-якого масиву.
sorted(iterable, key=key, reverse=reverse)
iterable- це послідовність для сортування (список, дикт, кортеж тощо);key- це функція, яку потрібно виконати для визначення порядку;reverse- булева функція. False - це порядок за зростанням, а True - за спаданням. За замовчуванням використовується значення False.
Ось приклад використання sorted() з лямбда-функцією для сортування списку кортежів на основі другого елемента в кожному кортежі:
123456tuples = [(1, 'banana'), (2, 'apple'), (3, 'orange')] # Використовуємо lambda функцію для сортування за другим елементом кожного кортежу sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
У цьому прикладі лямбда-функція lambda x: x[1] повертає другий елемент кожного кортежу. Потім функція sorted() сортує кортежі списку на основі цих других елементів, в результаті чого список буде відсортовано по назвам фруктів за алфавітом.
Swipe to start coding
Розглянемо список словників, що представляють книги, і ви хочете відфільтрувати книги, які мають певну кількість сторінок.
- Визначить список книг.
Нехай
books- це список словників. Кожен словник представляє книгу з двома ключами: 'title' та "pages ". - Створення користувацької функції
has_many_pages, яка приймає аргументиbookтаmin_pages. - Використання
filter()з користувацькою функцією. - Перетворення об'єкта filter у список, збереження його у змінній
filtered_books_listі друк за допомогою print.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат