Я только что узнал о рекурсии в Python и завершил присвоения, одним из которых было подсчет всех элементов в списке произвольно вложенных списков. Я искал этот сайт, и все найденные ответы, похоже, используют рекурсивные вызовы. Поскольку было показано, что все, что может быть выражено рекурсивно, может быть выражено итеративно, а итерация предпочтительна в Python, как это будет выполнено без рекурсии или импортированных модулей в Python 2.6 (в качестве учебного упражнения)? (Сам вложенный список будет считаться как элемент, так же как и его содержимое.) Например:
>>> def element_count(p):
... count = 0
... for entry in p:
... count += 1
... if isinstance(entry, list):
... count += element_count(entry)
... return count
>>> print element_count([1, [], 3])
3
>>> print element_count([1, [1, 2, [3, 4]]])
7
>>> print element_count([[[[[[[[1, 2, 3]]]]]]]])
10
Как это будет написано с помощью итерации?