Ole*_*kov 4 python algorithm recursion data-structures python-3.x
有一种简单的转换方式
t = ((1,), (1, 2), (1, 2, 3), (1, 2, 3, 4), (1, 2, 3, 4, 5))
Run Code Online (Sandbox Code Playgroud)
到下面的递归结构,其中每个后续元组作为前一元组的元素被附加
(1, (1, 2, (1, 2, 3, (1, 2, 3, 4, (1, 2, 3, 4, 5)))))
Run Code Online (Sandbox Code Playgroud)
这种嵌套的限制是什么?我可以拥有1000或10000个这样的嵌套元组吗?
更新:似乎t嵌套是无限的(在将递归限制设置为100后尝试使用10000).
在Window 7上,Python 3.5)最初的递归限制大约为300,但可以作为(引用)提升.这与结构无关t,但可能与Python例程访问结果结构的嵌套级别有关.
sys.getrecursionlimit() # display current recursion level
sys.setrecursionlimit(10000) # set recursion level to 1000
Run Code Online (Sandbox Code Playgroud)
>>> from functools import reduce
>>> t = ((1,), (1, 2), (1, 2, 3), (1, 2, 3, 4), (1, 2, 3, 4, 5))
>>> reduce(lambda a, b: b + (a,), reversed(t), ())
(1, (1, 2, (1, 2, 3, (1, 2, 3, 4, (1, 2, 3, 4, 5)))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |