你的简单情况很好,如果列表的长度是1(或更小),只需返回列表.实际上,我们可以简单地检查列表是否为空(通过发布if not lst
).如果列表较大,则必须考虑如何在递归情况下简化问题.换句话说,您可以这样表达:如果列表长于1,请给我扩展列表的最后一个元素,当我反转给定列表时没有最后一个元素.后一个列表比原始列表小一个,因此简化了问题.
在代码中:
def reverse(lst): if not lst: # this will be true if lst == [] return lst return lst[-1:] + reverse(lst[:-1]) # recursive case # Demo print(reverse([1,2,3,4,5])) # [5, 4, 3, 2, 1]
其他方式
def revlist(lst): if len(lst) == 0: return ([]) else: return (revlist(lst[1:]) + [lst[0]] )