Я не слишком уверен, как это работает рекурсияПонимание этой рекурсии
def c(s):
'''Docstring omitted.'''
return sum([c(i) for i in s]) if isinstance(s, list) else 1
Я не понимаю, как следующие ответы производятся
>>> c(['one', 2, 3.5])
3
>>> c(["one", [2, "three"], 4, [5, "six"]])
6
В моем понимании, функция принимает все элементов в их соответствующих списках, а затем добавляет их. Поэтому для второго вызова это должно быть «один» + (2 + «три») + 4 + (5 + «шесть»). Однако не должно возникнуть ошибка, поскольку вы не можете суммировать строку? Я не уверен, как были рассчитаны ответы. Любая помощь будет оценена.
Для того, чтобы понять рекурсию, что вам нужно понять рекурсию :) – alecxe