python列表和字典可以无限嵌套吗?

2024-04-05

最近我发现python列表和字典可以像这样多层嵌套

a = {'a1':[{'a2':{'a3':[4,5,6]}}]}

那么我想问一下嵌套层级有技术限制吗? 如果没有,嵌套级别是否有一个常规限制,它是什么?


唯一的限制是内存。给定无限的内存,你可以无限地嵌套 Python 对象。

Demo:

>>> root = lst = []
>>> levels = 0
>>> while True:
...     lst.append([])
...     lst = lst[-1]
...     levels += 1
...     if levels % 1000000 == 0:  # every 1 million
...         print levels
... 
1000000
2000000
3000000
4000000
5000000
6000000
7000000
8000000
9000000
10000000
11000000
# ....
# [ slower and slower as the system starts to swap ]
# ....
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError

为了我的理智,我在 3000 万个对象上杀死了它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python列表和字典可以无限嵌套吗? 的相关文章

随机推荐