电子说
我们可以使用循环语句来替代上一篇文章中的递归:
>>>L = [1,2,3,4,5]
>>>sum = 0
>>>while L:
... sum += L[0]
... L = L[1:]
...
>>>sum
15
使用for循环更是可以为我们自动迭代:
>>>L = [1,2,3,4,5]
>>>sum = 0
>>>for x in L: sum += x
...
>>>sum
15
如果用循环语句取代递归,我们就不需要在调用堆栈上针对每次迭代都有一个本地作用域的副本,并且,我们还避免了一般会与函数调用相关的速度成本。所以循环语句更加节约空间也更加快。
全部0条评论
快来发表一下你的评论吧 !