【发布时间】:2022-01-05 04:22:55
【问题描述】:
我需要编写一个接收非负整数并返回的函数:
[] for n=0
[[]] for n=1
[[],[[]]] for n=2
[[],[[]],[[],[[]]]] for n=3
等等。对于n,我们将收到一个n 大小的列表,因此在索引i 中将包含列表中的所有i-1 元素。我不知道如何更好地解释这一点,英语不是我的第一语言。
我不允许使用列表切片或循环,我应该在没有 copy 模块的情况下创建每个列表的深层副本。我不允许让 2 个不同的列表或索引指向内存中的同一个列表。
这是我尝试过的:
def list_seq(x, outer_list=[]):
if x == 0:
return []
outer_list.append(list_seq(x-1,outer_list))
return outer_list
print(list_seq(2)) 的输出是[[], [...]]。
【问题讨论】:
-
“我想创建每个列表的深层副本”这是否意味着您不应该缓存递归调用的结果?在这种情况下,将具有非常高复杂性。
-
@tobias_k 我不允许 2 个不同的列表或索引指向内存中的同一个列表
-
你尝试了什么?
-
@PApostol 更新了帖子
-
@MadaBit 你为什么回滚你的代码尝试?没有它,这个问题就跑题了。