Я сомневаюсь в том, что sum () принимает Counter () в качестве начального параметра. Что произойдет в этом случае?
Как и в любом другом случае, он берет начальный Counter()
и добавляет к нему первый элемент counters
, а затем добавляет к нему следующий. результат и так далее. Это то же самое, как если бы вы явно использовали символ +
между всеми экземплярами Counter
. Чтобы понять, что делает , что , см. Документацию .
TypeError: len () принимает ровно один аргумент (задано 0)
Ну да, вроде написано; len
необходимо знать, что получить длину из . Я не понимаю, что вы хотите от этого sum
вызова do .
, и я не могу найти какую-либо документацию, в которой упоминается о предоставлении функций в качестве параметров запуска.
collections.Counter
не функция; это класс . Однако len(x)
тоже не функция; это результат вызова этой функции . (Точно так же результатом вызова класса collections.Counter
будет collections.Counter
экземпляр .) В любом случае, не имеет значения, откуда берется параметр start
; важно то, какое у него значение . Например:
a=[2,3,3,4,5,5,6]
sum(a,len(a))
a
содержит 7 элементов, поэтому len(a)
равно 7
, и результат такой же, как при непосредственном написании sum(a, 7)
. То есть 7 + 2 + 3 + 3 + 4 + 5 + 5 + 6
= 35
.