Вопрос Вопрос по коду в python

Регистрация
25 Дек 2013
Сообщения
89
Репутация
0
Спасибо
1
Монет
0
def product_of_odds(data):

a = list(filter(lambda x: x % 2 == 1, data))

return a

print(product_of_odds([1, 2, 3, 4, 5, 6, 7, 8, 9]))
 
а не результат?Результат чего? Здесь нет действий над отфильтрованным списком..
 
Что делает? Функция которая принимает параметром массив и отфильтровывает из него четные числа. Возвращает массив нечетных чисел
x % 2 == 1 тут лишнее. Просто x % 2 без "== 1" даст тоже самое
 
Выводит результат
20272225_e8b5d11d61585131dfc0454e4e7ff7ff_800.png

 
Если Вы хотите получить произведение всех нечетных чисел, Вы должны использовать функцию reduce из модуля functools вместо filter.

from functools import reduce

def product_of_odds(data):
odd_numbers = list(filter(lambda x: x % 2 == 1, data))
product = reduce(lambda x, y: x * y, odd_numbers, 1)
return product

result = product_of_odds([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(result)
 
Назад
Сверху