我想在python中使用递归来反转列表。我成功了,但输出并不是我想要的。试图找出我出错的地方。
def revlist(ls):
newlist = []
n = len(ls)
if n == 1:
return ls[-1]
else:
return ls[-1],revlist(ls[:-1])
这是我的输出。
revlist([1,2,3,4])
(4, (3, (2, 1)))
我真正希望得到的是:
revlist([1,2,3,4])
(4,3,2,1)
答案 0 :(得分:1)
你好了。
def revlist(ls):
newlist = []
n = len(ls)
if n == 1:
return [ls[-1]]
else:
return [ls[-1]] + revlist(ls[:-1])
或清理:
def revlist(ls):
if len(ls) < 1:
return []
else:
return [ls[-1]] + revlist(ls[:-1])
基本上,您需要始终从函数返回list
,并适当地附加递归调用。