Как работает reduce
в python3 с тремя параметрами вместо двух. Таким образом, для двух,Уменьшить функцию с тремя параметрами
tup = (1,2,3)
reduce(lambda x, y: x+y, tup)
Я получаю это. Это просто суммирует все элементы в tup
. Тем не менее, если вы даете уменьшить функцию трех параметров, как это ниже,
tup = (1,2,3)
reduce(lambda x, y: x+y, tup, 6)
это даст вам значение 12
. Я проверил документацию на python3, и он говорит, что третий аргумент является инициализатором. Тем не менее, что такое инициализатор по умолчанию, если третий аргумент не вставлен?
Хорошо, я, кажется, понимаю! Что делает 'next' в этой функции? – chanpkr
@ChanPark: см. Документацию по ['next()') (http://docs.python.org/3/library/functions.html#next); получить следующее значение из итератора. Если 'iterable' является кортежем, это первый индекс. –
Обратите внимание, что функция фактического уменьшения принимает 'None' как 3-й аргумент. – georg