Как с помощью `filter()` отфильтровать четные числа из списка?

Используйте функцию `filter()` с лямбда-функцией, проверяющей четность числа:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Output: [2, 4, 6]
  

Для фильтрации четных чисел из списка с помощью функции filter() в Python, можно использовать лямбда-функцию, которая проверяет, является ли число четным (остаток от деления на 2 равен 0). Вот пример кода:


  # Исходный список чисел
  числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  # Используем filter() и лямбда-функцию для фильтрации четных чисел
  четные_числа = list(filter(lambda x: x % 2 == 0, числа))

  # Выводим результат
  print(четные_числа)  # Output: [2, 4, 6, 8, 10]
  

Разберем код:

  • числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: Это исходный список, из которого мы хотим выбрать четные числа.
  • lambda x: x % 2 == 0: Это лямбда-функция, которая принимает число x в качестве аргумента и возвращает True, если x четное (остаток от деления на 2 равен 0), и False в противном случае.
  • filter(lambda x: x % 2 == 0, числа): Функция filter() принимает два аргумента: функцию (в данном случае, лямбда-функцию) и итерируемый объект (в данном случае, список числа). Она применяет функцию к каждому элементу итерируемого объекта и возвращает итератор, содержащий только те элементы, для которых функция вернула True.
  • list(...): Результат работы filter() - это итератор. Чтобы получить список, мы преобразуем итератор в список с помощью функции list().

Альтернативный подход с использованием обычной функции:


  def is_even(number):
    return number % 2 == 0

  числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  четные_числа = list(filter(is_even, числа))

  print(четные_числа) # Output: [2, 4, 6, 8, 10]
  

Этот код делает то же самое, что и код с лямбда-функцией, но использует именованную функцию is_even для проверки четности числа. Оба подхода равнозначны, но лямбда-функции обычно используют, когда функция простая и нужна только один раз.

0