python - 使用递归来反转python中数字的顺序

标签 python recursion

我将如何使用递归来反转数字的顺序。我什至不知道从哪里开始。有人可以帮我一下吗? 例如输入=1,2,3,4 输出=4,3,2,1

我已经尝试过了,这就是我所拥有的,但它仍然无法正常工作。

def reverseDisplay(number):
    new_list=" "
    if len(number)==1:
            new_list=number
    else:
            new_list=reverseDisplay(number[1:]) + number[0] + " "
            return new_list    

def main():
    number=float(input("Enter a number :"))
    print(reverseDisplay(number))
main()

最佳答案

推理是这样的:

  1. 如果列表为空,则 rev([]) 也是 [] - 这称为“基本情况”
  2. 否则,反转其余部分(除第一个元素之外的列表)并将第一个元素附加到它

这样

  rev ([1, 2, 3, 4])
= rev (   [2, 3, 4])                   + [1]
= rev (      [3, 4])             + [2] + [1]
= rev (         [4])       + [3] + [2] + [1]
= rev (          []) + [4] + [3] + [2] + [1]
=                []  + [4] + [3] + [2] + [1]

或者,在 Python 中

def rev(lst):
    if lst: # list is not empty
        return rev(lst[1:])+[lst[0]]
    else:   # list is empty
        return []

关于python - 使用递归来反转python中数字的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131303/

相关文章:

sql - 使用 row_to_json 的 Postgres 递归查询

javascript - 这个递归 javascript 函数有什么问题? [JS]

python - 我的代码引发递归错误。有人可以向我解释我的递归基本代码有什么问题吗?

java - Android/Java - 带条件的递归扫描

python - 将多种日期格式解析为单一格式

python - Flask 和 Flask-SocketIO

python - Google DataFlow 无法在不同位置读写(Python SDK v0.5.5)

python - Google App Engine (python) 授权网络服务/第三方客户端

python - 根据总和对数组列进行排序

java - 是否有可能在 Java 8 中创建一个无限增长的惰性集合,由递归定义?