python递归功能逆转列表

发布于 2025-01-21 19:33:24 字数 289 浏览 0 评论 0原文

我的代码的图片

我想编写一个反向列表的递归函数。 给定输入:[1,2,3],该功能应返回[3,2,1],

但是我正在收回此错误消息。

在此处输入图像描述

Picture of my code

I want to write a recursive function that reverses a list.
Given an input: [1,2,3], the function should return [3,2,1]

I am however recieving this error message.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

痴情 2025-01-28 19:33:24

尝试这样:

def reverse(lst,start,end):
      if start>=end:
         return lst
      else:
        temp=lst[start]
        lst[start]=lst[end]
        lst[end]=temp
        return reverse(lst,start+1,end-1)

l = [1,2,3]
print(reverse(l,0,len(l)-1))

输出:

[3, 2, 1]

Try like this :

def reverse(lst,start,end):
      if start>=end:
         return lst
      else:
        temp=lst[start]
        lst[start]=lst[end]
        lst[end]=temp
        return reverse(lst,start+1,end-1)

l = [1,2,3]
print(reverse(l,0,len(l)-1))

Output:

[3, 2, 1]
初与友歌 2025-01-28 19:33:24

无需任何递归编程:

list_in = [1, 2, 3]
list_out = list_in[::-1]

No need for any recursive programming:

list_in = [1, 2, 3]
list_out = list_in[::-1]
漫雪独思 2025-01-28 19:33:24

newlist.append(temp)没有返回值,因此返回无。 newlist.append(temp)将温度添加到newlist,因此您的代码可以工作为:

def recursiveReverse(dataList):
    if len(dataList) == 1:
        return dataList
    else:
        temp = dataList.pop(0)
        newList = recursiveReverse(dataList)
        newList.append(temp)
        return newList

newList.append(temp) doesn't have a return value, and therefore returns None. newList.append(temp) adds temp to newList, so your code could work as:

def recursiveReverse(dataList):
    if len(dataList) == 1:
        return dataList
    else:
        temp = dataList.pop(0)
        newList = recursiveReverse(dataList)
        newList.append(temp)
        return newList
昵称有卵用 2025-01-28 19:33:24

从我在错误消息中看到的错误,您正在尝试将某些类型附加到line 返回yourlist.append(element)中的内容。
尝试首先附加到列表中,然后返回。
喜欢

mylist.append(element)
return mylist

From what I can see in the error message it is throwing an error is you are trying to append something to none type as in the line return yourlist.append(element).
Try appending to the list first and then return it.
Like

mylist.append(element)
return mylist
智商已欠费 2025-01-28 19:33:24

在Python中,列表是可变的对象,List.Append将元素添加到现有列表中,但不会返回任何内容。这就是为什么您会遇到错误。

In python, lists are mutable objects, and list.append adds an element to the existing list but doesn't return anything. That's why you're getting that error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文