我想垂直递归打印此列表:示例:
print_list(['hi', [22,45], 'dog', 21])
预期:
hi
[22, 45]
dog
21
这是我的代码:
def print_list(n_list):
if len(n_list) == 0:
return
else:
half = len(n_list) // 2
for i in range(half):
if half == 2:
print (n_list[i], sep = "\n")
else:
print (n_list[half+i])
这是我得到的:
hi
[22, 45]
dog
我不确定为什么列表没有完整显示。对于包含更多项目的列表,也只会出现一部分。我知道我在打印语句中弄乱了一些东西,但无法弄清楚...
您很亲密,但是您没有应用归约,因为您的函数未调用自身。这是应该工作的代码的略微修改版本:
def print_list(n_list):
if len(n_list) == 0:
return
else:
half = (len(n_list) + 1) // 2
# Print elements in the first half:
for i in range(half):
print(n_list[i])
# Print second half using recursion:
print_list(n_list[half:])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句