我刚开始学习递归是如何工作的,而且我一直在坚持我认为应该是一个简单的问题。我需要使用递归来创建一个函数,该递归获取一个列表并返回一个新列表,其中每个值只有原始列表中的一个。
实施例: original_list = [1,1,2,3,3,4,5] returned_list = [1,2,3,4,5]
我的尝试:
def recursion(list1):
new_list = []
if list1 == []:
new_list = []
else:
if list1[0] not in list1[1:]:
new_list = new_list.append(list1[0]) + recursion (list1[1:])
else:
new_list = recursion (list1[1:])
return new_list
答案 0 :(得分:1)
您没有将new_list
作为参数传递给递归函数;因此,递归的每个级别都不知道您到目前为止收集的结果,并且递归的结果只是第一级的结果。
(我没有发布更正后的代码,因为您可能希望自己修复它,从而了解更多 - 如果您需要更多提示,请告诉我。)