#python #itertools #accumulate
#python #python-itertools #накапливать
Вопрос:
В этой ссылке на документацию мы можем прочитать это:
itertools.accumulate(iterable[, func, *, initial=None])
Обычно количество выходных элементов совпадает с количеством входных итераций.
Однако, если указан аргумент ключевого слова initial , накопление
завершается начальным значением, так что на выходе на один
элемент больше, чем на входе, который можно повторить.
Однако я не могу понять, как использовать initial
аргумент.
Если я использую его так:
accumulate([0, 7, 19, 13], operator.add,1)
Я получаю сообщение об ошибке «TypeError: accumulate() принимает не более 2 аргументов (задано 3)».
Я использую Python 3.4.
Ответ №1:
Если вы посмотрите на сигнатуру функции, вы заметите «*». Это означает, что все, что после этого, должно быть предоставлено в качестве аргументов ключевого слова. Итак, ваш вызов должен быть:
accumulate([0,7,19,13], operator.add, initial=1)
но вы сказали, что используете Python 3.4, тогда у вас не будет initial
аргумента, поскольку он предоставляется только в Python 3.8, согласно документации.