python:将一个数逆序列放入列表中,例如1234 => [4,3,2,1]

今天有小伙伴问题了一个题:将一个数逆序列放入列表中,例如1234 => [4,3,2,1]。要求用递归实现。
粗看这个题的话,很容易实现的:int 转成str ,然后倒序,再把列表里面的 str 转成 int。
再来看递归:
一般递归里面都是要有个结束条件,这个题的结束条件也很好确定,它是这个列表,列表有长度,每次pop 一个 元素,直到列表的长度 等于 0 的时候,那就可以结束了。
先来看个普通的递归方法:

def reverse_order_list1(lst:list, tmp=[]):
    if len(lst) == 0:
        return tmp
    num = lst.pop()
    tmp.append(int(num))
    return reverse_order_list1(lst, tmp=tmp)
print(reverse_order_list1(list(str(1234))))

再来个尾递归方法:

def reverse_order_list2(lst:list, tmp=[]):
    if len(lst) > 0:
        num = lst.pop()
        tmp.append(int(num))
        reverse_order_list2(lst,tmp=tmp)
    return tmp
print(reverse_order_list2(list(str(1234))))

python 里面建议最好不要使用递归,一般能的递归都可以用for 来实现,不过有些场景下,用递归会更方便一些

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,771评论 0 2
  • 找到对的你,是我最惊艳的时光 喜欢上一个人也许只需要一个简单的眼神,爱上一个人也许只需要短短的相处一天,而忘掉一个...
    南坡文艺阅读 3,180评论 0 0
  • 1.你的薪酬与工作量无关这第一条或许就会让你感觉有些沮丧,但仔细想想这是不是一个普遍的事实呢?当你大学毕业后进入一...
    Kecvin阅读 1,397评论 0 0
  • 今天主要讲的是,二维数组指针的应用和结构体类型。 (1) char *p[4]=&a[0]; 这就是指针数组...
    Letitgoofyestar阅读 1,007评论 0 0
  • 相信很多朋友和我一样,认为晚餐不重要,随便吃点就行,我开始重视晚餐也是在半年以前。宝宝11个月了,在坐月子时母亲总...
    爱的分享阅读 2,812评论 0 0