1
快速的问题,希望你们能帮助:创建列表利用乘法而不是让每个表镜
这里是我的代码:
def nd_mkboard(dims, filler):
n = len(dims)
helpboard = [filler]
helpboard = helpboard * dims[n-1]
for i in reversed(range(n)):
if i != 1:
helpboard = [helpboard] * dims[i-1]
return helpboard
例:
stuff = nd_mkboard([2, 4, 2], False)
print(stuff)
[[[False, False], [False, False], [False, False], [False, False]],
[[False, False], [False, False], [False, False], [False, False]]]
stuff[0][0][0] = True
print(stuff)
[[[True, False], [True, False], [True, False], [True, False]],
[[True, False], [True, False], [True, False], [True, False]]]
如何我是否避免这种联系问题?我想要的全部是:
[[[True, False], [False, False], [False, False], [False, False]],
[[False, False], [False, False], [False, False], [False, False]]]
太谢谢你了。任何启动递归函数的提示? –
该函数是**递归**。葛丽泰嘉宝是**隐居。** :-)我已经添加了一个更新。 –
这绝对美妙,非常感谢。最后一个问题,无论如何要传递昏暗的列表而不是多个参数?抱歉打扰你。例如,make_structure([2,4,2])而不是make_structure(2,4,2)。 –