我正在python中创建一个简单的递归函数以合并两个排序的整数列表。我面临的问题是我返回的列表输出为“ None”。
def merge(lst1, lst2, lst3 =[]):
merged_list = lst3
##Break conditions
if len(lst1) == 0 :
merged_list.extend(lst2)
#print(merged_list)
return merged_list
if len(lst2) == 0 :
merged_list.extend(lst1)
#print(merged_list)
####The return statement that is problematic
return merged_list
##Compare the first two elements of the 2 list and drop the min integer
if lst1[0] < lst2[0]:
merged_list.append(lst1[0])
del lst1[0]
else:
merged_list.append(lst2[0])
del lst2[0]
merge(lst1,lst2, merged_list)
我为列表lst1= [2,7]
和lst2= [5,6]
运行了代码,但是当我期望列表[2,5,6]时,我得到的输出是 None ,7]。
在第7行和第11行取消注释打印语句print(merged_list)
时,我得到的预期输出为[2,5,6,7]。
In [1]: print(merge([2,7], [5,6]))
None