使用递归来消除重复

时间:2015-07-07 02:33:35

标签: python-3.x recursion

我刚开始学习递归是如何工作的,而且我一直在坚持我认为应该是一个简单的问题。我需要使用递归来创建一个函数,该递归获取一个列表并返回一个新列表,其中每个值只有原始列表中的一个。

实施例: 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

1 个答案:

答案 0 :(得分:1)

您没有将new_list作为参数传递给递归函数;因此,递归的每个级别都不知道您到目前为止收集的结果,并且递归的结果只是第一级的结果。

(我没有发布更正后的代码,因为您可能希望自己修复它,从而了解更多 - 如果您需要更多提示,请告诉我。)