我在仅使用这些函数使用递归反转列表时遇到问题:
def head(xs):
return xs[0]
def tail(xs):
return xs[1:]
def empty(xs):
return len(xs) == 0
我能做到:
def p(xs1, xs2):
if not empty(tail(xs1)):
p(tail(xs1), xs2)
xs2.append(head(xs1))
def p05(xs):
s = []
p(xs, s)
return s
有没有不使用 append() 的方法呢??
最佳答案
def head(xs):
return xs[0]
def tail(xs):
return xs[1:]
def empty(xs):
return len(xs) == 0
def reverse(xs):
if empty(xs): return []
return reverse(tail(xs))+[head(xs)]
xs = range(4)
print(reverse(xs))
产量
[3, 2, 1, 0]
关于python反向列表递归,仅使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473554/