Одним из продвинутых методов, часто используемых при построении списков, является интеграция лямбда-функций в Python. Таким образом, объединение лямбда-функции с пониманием списка в Python приведет к созданию списка с условиями, применяемыми через функцию.
Понимание списков в Python — это краткий способ создания списков. Они предоставляют компактный метод создания списка на основе условий с существующими итерируемыми объектами, такими как списки, кортежи или строки.
Давайте сначала разберемся с основным синтаксисом понимания списков в Python.
[expression for item in iterable if condition]
Параметры:
- expression: операция или преобразование, применяемое к каждому элементу.
- item: переменная, представляющая каждый элемент в итерации.
- iterable: последовательность(например, список, кортеж или строка), по которой выполняется итерация.
- condition: фильтрует, следует ли включать элемент в результирующий список.
Вот простой пример:
squares = [x**2 for x in range(10)] print(squares)
Выход:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
На снимке экрана ниже представлен результат, полученный после выполнения кода в редакторе Pycharm.
- Лямбда-функции
- С пониманием списка
- В базовом понимании списков
- Фильтрация с помощью лямбды
- Сопоставление с пониманием лямбда-списка
- Разница между пониманием списка и лямбдой
- Заключение
Лямбда-функции
Между тем, лямбда-функции в Python, известные как анонимные функции, представляют собой небольшие встроенные функции, определенные без имени. Они используются, когда функция требуется в течение короткого периода времени, и больше нигде не используются.
Синтаксис:
lambda arguments: expression
Параметры:
- arguments: это список входных параметров, разделенных запятыми.
- expression: это одно выражение, определяющее вычисления, выполняемые функцией.
С пониманием списка
Теперь давайте воспользуемся лямбда-функцией для понимания списков в Python. Лямбда-функции обычно используются, когда функция требуется только один раз и может быть выражена кратко.
Вот как мы можем использовать лямбда-функцию в понимании списка в Python:
- Лямбда-функции в базовом понимании списков.
- Фильтрация с помощью лямбда-функций.
- Сопоставление с помощью лямбда-функций.
В базовом понимании списков
В контексте понимания списка лямбда-функции могут определять простые операции или преобразования, применяемые к каждому элементу в итерации в Python.
Вот простая иллюстрация:
fahrenheit_temps = [32, 50, 68, 86, 104] celsius_temps = [(lambda f:(f - 32) * 5/9)(temp) for temp in fahrenheit_temps] print(celsius_temps)
Вывод: здесь мы модифицируем элементы списка в Python с помощью лямбда-функции и создаем новый список с помощью понимания списка.
[0.0, 10.0, 20.0, 30.0, 40.0]
После реализации кода в редакторе Pycharm был предоставлен снимок экрана ниже.
Фильтрация с помощью лямбды
Фильтрация с помощью лямбда-функций в Python — это метод выбора элементов из итераций на основе условий.
Лямбда в понимании списка в Python для фильтрации элементов, удовлетворяющих условию. Элементы итерации, соответствующие условиям, возвращают значение True и будут включены в список, который будет создан в Python с помощью генератора списков.
Вот пример для иллюстрации:
state_populations = [39461588, 28995881, 2088070, 19530351, 11330102] even_population_states = [population for population in state_populations if(lambda x: x % 2 == 0)(population)] print(even_population_states)
Вывод: здесь мы используем лямбда-функцию для фильтрации списка state_populations в Python, создавая список только четных элементов.
[39461588, 2088070, 11330102]
Ниже представлен снимок экрана, сделанный после реализации кода в редакторе Pycharm.
Сопоставление с пониманием лямбда-списка
Сопоставление с помощью лямбда-функций в Python используется для применения преобразования к каждому элементу в итерации.
В рамках понимания списка лямбда-функция применяется к каждому элементу итерируемого объекта в Python, и результат преобразования включается в новый список.
Например:
cities = ["new york", "los angeles", "chicago", "houston", "phoenix"] uppercase_cities = [(lambda x: x.upper())(city) for city in cities] print(uppercase_cities)
Выход:
['NEW YORK', 'LOS ANGELES', 'CHICAGO', 'HOUSTON', 'PHOENIX']
Результат выполнения кода в Pycharm можно увидеть на снимке экрана ниже.
Разница между пониманием списка и лямбдой
Вот таблица, суммирующая различия между пониманием списка и лямбда-функциями в Python:
Особенность | Понимание списка | Лямбда-функции |
---|---|---|
Цель | Это создает список путем применения выражений к итерациям в Python. | Это создает небольшие и анонимные функции в Python. |
Синтаксис | [выражение для элемента в итерируемом условии if] | лямбда-аргументы: выражение |
Объем | Создает новый список в Python. | Автономные функции |
Сложность | Может обрабатывать сложные преобразования и фильтрацию. | Обычно проще, ограничивается одним выражением |
Читабельность | Кратко и выразительно. | Кратко, но менее выразительно. |
Применение | Создание списков и преобразование данных. | Краткосрочные или разовые определения функций |
Заключение
В этой статье объясняется, как использовать лямбда-выражения для понимания списков в Python. Я подробно объяснил, что такое понимание списка и лямбда-выражение в Python, с примерами того, как мы можем использовать понимание списка с лямбда-выражением для фильтрации или сопоставления элементов итерируемого объекта.