你的核心問題是你沒有返回你的遞歸調用。清理一些在你的代碼在名義上未使用的當地人給:
def shuffle(list1, list2):
a = []
if len(list1) == 0:
return list2
if len(list2) == 0:
return list1
else:
a.append(list1.pop(0))
a.append(list2.pop(0))
return a + shuffle(list1, list2)
當然,在上述清理很明顯,你甚至都不需要a
蓄電池:
def shuffle(list1, list2):
if len(list1) == 0:
return list2
if len(list2) == 0:
return list1
else:
return [list1.pop(0),list2.pop(0)] + shuffle(list1, list2)
演示:
shuffle([1,2,3],[4,5,6])
Out[35]: [1, 4, 2, 5, 3, 6]
shuffle([1,2], [6,7,8,9])
Out[36]: [1, 6, 2, 7, 8, 9]
順便說一句,這會改變輸入列表,這通常不是所希望的。使用遞歸模型
def shuffle(list1, list2):
if len(list1) == 0:
return list2
if len(list2) == 0:
return list1
else:
return [list1[0],list2[0]] + shuffle(list1[1:], list2[1:])
是你的問題,它的返回'none'? – ForgetfulFellow