def nest(x, n):
a = []
for i in range(n):
a.append([x])
return a
print nest("hello", 5)
这给出了输出
[['hello'], ['hello'], ['hello'], ['hello'], ['hello']]
所需的输出是
[[[[["hello"]]]]]
答案 0 :(得分:5)
您要添加到列表中的循环每转一圈。您希望进一步嵌套列表,而不是在其上添加更多内容。你可以这样做:
def nest(x, n):
for _ in range(n):
x = [x]
return x
每次转过循环,x
都会有另一个列表。
答案 1 :(得分:2)
而不是附加你应该包裹x
并递归调用该方法,直到电话号码小于n
def nest(x, n):
if n <= 0:
return x
else:
return [nest(x, n-1)]
答案 2 :(得分:1)
这是一种pythonic递归方法:
In [8]: def nest(x, n):
...: return nest([x], n-1) if n else x
样本:
In [9]: nest(3, 4)
Out[9]: [[[[3]]]]
In [11]: nest("Stackoverflow", 7)
Out[11]: [[[[[[['Stackoverflow']]]]]]]