我刚刚了解了 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
这将如何使用迭代编写?