Одним из продвинутых методов, часто используемых при построении списков, является интеграция лямбда-функций в 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

Содержание

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

Между тем, лямбда-функции в 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 используется для применения преобразования к каждому элементу в итерации.

В рамках понимания списка лямбда-функция применяется к каждому элементу итерируемого объекта в 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. Это создает небольшие и анонимные функции в Python.
Синтаксис [выражение для элемента в итерируемом условии if] лямбда-аргументы: выражение
Объем Создает новый список в Python. Автономные функции
Сложность Может обрабатывать сложные преобразования и фильтрацию. Обычно проще, ограничивается одним выражением
Читабельность Кратко и выразительно. Кратко, но менее выразительно.
Применение Создание списков и преобразование данных. Краткосрочные или разовые определения функций

Заключение

В этой статье объясняется, как использовать лямбда-выражения для понимания списков в Python. Я подробно объяснил, что такое понимание списка и лямбда-выражение в Python, с примерами того, как мы можем использовать понимание списка с лямбда-выражением для фильтрации или сопоставления элементов итерируемого объекта.

Добавить комментарий