Python UDF在应返回列表时返回None

时间:2019-09-09 14:09:09

标签: python return

我正在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

0 个答案:

没有答案