Я только что узнал о рекурсии в 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
Как это будет записано с помощью итерации?