List 无限嵌套 (Example)

2023-11-14

这个有趣的例子演示了一种用 Python list 实现无限俄罗斯套娃的方法,虽然并无实用价值。

为何能实现无限嵌套?这种无限嵌套消耗了多少资源?

如果能够实现任意有限(而不是无限)长度的数组,且又不怎么消耗资源,则是一个项非常有用的计算器。见: myrange-simulation

实现 [[[[[...]]]]]

a = []
a[0]=a

等价的写法:

a = []
a.append(a)

test

a[0][0][0] == a
id(a) == id(a[0][0][0])

实现 [1[1[1[1...]]]]

b = [1]
b.append(b)

test

b[1][1][1] == b
id(b[1][1][1]) == id(b)

在以上的两个实例中,a 的长度为 1, b 的长度为 2,并没有消耗多少资源。