List comprehension фильтрует элементы условием value % 2 == 0. Эквивалентный цикл проверяет то же условие и добавляет подходящие значения через append().
Отбор чётных элементов из массива двумя методами
List comprehension фильтрует элементы условием value % 2 == 0. Эквивалентный цикл проверяет то же условие и добавляет подходящие значения через append().
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте отбор элементов списка, являющихся чётными, двумя различными подходами: с помощью list comprehension и через обычный цикл с использованием метода append.
Пример: Ввод: [1, 2, 3, 4, 5] Вывод: [2, 4]
Ответ
List comprehension фильтрует элементы условием value % 2 == 0. Эквивалентный цикл проверяет то же условие и добавляет подходящие значения через append().
Два варианта с сохранением исходного порядка:
def evens_comprehension(values):
return [value for value in values if value % 2 == 0]
def evens_loop(values):
result = []
for value in values:
if value % 2 == 0:
result.append(value)
return result
Для [1, 2, 3, 4, 5] оба возвращают [2, 4]. Ноль и отрицательные чётные числа также включаются. Входной список не меняется; время O(n), память пропорциональна размеру результата.