我想对单个列表进行排序,因为我是从递归的2个排序列表中创建的。这是我到目前为止所写的:
def list_creation (list_one,list_two):
if list_one == [] and list_two == []:
return []
else:
if list_one != [] and list_two != []:
if list_one[0] <= list_two[0]:
return [list_one[0],list_two[0]] + list_creation(list_one[1:],list_two[1:])
else:
return [list_two[0],list_one[0]] + list_creation(list_one[1:],list_two[1:])
print(list_creation([10,11,12,13],[14,15,16,17]))
print(list_creation([3,6,9,12],[4,8,12,16]))
这适用于第二个打印语句,但不适用于第一个。有什么建议吗?
答案 0 :(得分:1)
你的逻辑错误。您应该逐项添加项目,而不是成对添加。例如,请考虑[1,2]
和[3,4]
。您的算法将配对[1,3,2,4]
,这显然是错误的。主要思想是先添加1
,然后使用其余列表(即[2]
和[3,4]
以递归方式调用该算法。当然,您还应该考虑其中一个列表为空而另一个列表不为空的情况。