python反向列表递归,仅使用

标签 python list function recursion

我在仅使用这些函数使用递归反转列表时遇到问题:

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/

相关文章:

python - 按特定值填充 Pandas Dataframe 缺失值

python - 有没有办法从 python unicode 字符串中提取下划线 "raw data"?

python - Django Autocomplete Light 创建新选择

Python 序列元素比较

python - 将 csv 仅一列转换为字典

mysql - 生成日期列表并计算每天的在线帖子数

python - 蜗牛算法 - 控制遍历的最大/最小位置

对 ANSI C 之前的语法中的函数调用感到困惑

c++ - 函数参数的...是什么?

r - 使用R编写一个读取文件的函数