Отфильтровать чётные числа

32. Отфильтровать чётные числа

Условие задачи: Дан список чисел numbers. Нужно получить новый список, в котором останутся только чётные числа из исходного списка. Для списка [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] результат должен быть [2, 4, 6, 8, 10]. Альтернативно нужна реализация через lambda.

Спойлеры к решению
Подсказки
  • Чётное число — это число, которое делится на 2 без остатка.
  • Проверка чётности выполняется через number % 2 == 0.
  • Новый список можно получить через list comprehension.
  • Альтернативный вариант можно сделать через filter() и lambda.
  • filter() возвращает итератор, поэтому его нужно обернуть в list().
Решение
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = [
    number
    for number in numbers
    if number % 2 == 0
]

print(even_numbers)

Результат:

[2, 4, 6, 8, 10]

Вариант через lambda:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = list(filter(lambda number: number % 2 == 0, numbers))

print(even_numbers)

Результат:

[2, 4, 6, 8, 10]

В первом варианте используется list comprehension: каждый элемент из numbers попадает в новый список только если выполняется условие number % 2 == 0.

Во втором варианте filter() оставляет только те элементы, для которых lambda number: number % 2 == 0 возвращает True.