如何使用递归垂直打印列表?
How to print list vertically using recursion?
我想递归地垂直打印这个列表:
示例:
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):
for item in n_list:
print(item)
我不确定为什么你只尝试迭代列表的一半half = len(n_list) // 2
?
n_list = ['hi', [22,45], 'dog', 21]
print(*n_list, sep='\n')
给予
hi
[22, 45]
dog
21
你很接近,但你没有应用缩减,因为你的函数没有调用自身。这是您的代码的略微修改版本,应该可以工作:
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:])
我想递归地垂直打印这个列表: 示例:
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):
for item in n_list:
print(item)
我不确定为什么你只尝试迭代列表的一半half = len(n_list) // 2
?
n_list = ['hi', [22,45], 'dog', 21]
print(*n_list, sep='\n')
给予
hi
[22, 45]
dog
21
你很接近,但你没有应用缩减,因为你的函数没有调用自身。这是您的代码的略微修改版本,应该可以工作:
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:])