Вопрос по коду в python - Общение Python мододелов

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

Регистрация
25 Дек 2013
Сообщения
93
Репутация
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]))
 
Регистрация
6 Ноя 2012
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
а не результат?Результат чего? Здесь нет действий над отфильтрованным списком..
 
Регистрация
21 Дек 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Что делает? Функция которая принимает параметром массив и отфильтровывает из него четные числа. Возвращает массив нечетных чисел
x % 2 == 1 тут лишнее. Просто x % 2 без "== 1" даст тоже самое
 
Регистрация
2 Ноя 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Выводит результат
20272225_e8b5d11d61585131dfc0454e4e7ff7ff_800.png

 
Регистрация
18 Ноя 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Если Вы хотите получить произведение всех нечетных чисел, Вы должны использовать функцию 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)
 
Сверху Снизу