Как я могу перевернуть список с помощью рекурсии в Python? - PullRequest
1 голос
/ 19 октября 2008

Я хочу иметь функцию, которая будет возвращать обратный список, который ему дан - используя рекурсию. Как я могу это сделать?

Ответы [ 14 ]

0 голосов
/ 11 октября 2016

Почему бы и нет:

a = [1,2,3,4,5]
a = [a[i] for i in xrange(len(a)-1, -1, -1)] # now a is reversed!
0 голосов
/ 11 октября 2016

Использование изменяемого аргумента по умолчанию и рекурсии:

def hello(x,d=[]):
    d.append(x[-1])
    if len(x)<=1:
        s="".join(d)
        print(s)

    else:
        return hello(x[:-1])

hello("word")

дополнительная информация

x[-1]    # last item in the array
x[-2:]   # last two items in the array
x[:-2]   # everything except the last two items

Рекурсионная часть - hello(x[:-1]), где ее вызывающая функция hello снова после x[:-1]

0 голосов
/ 28 февраля 2016
def reverseList(listName,newList = None):
if newList == None:
    newList = []
if len(listName)>0:
    newList.append((listName.pop()))
    return reverseList(listName, newList)
else:
    return newList

print reverseList ([1,2,3,4]) [4,3,2,1]

0 голосов
/ 19 октября 2008

Возьмите первый элемент, рекурсивно переверните остальную часть списка и добавьте первый элемент в конец списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...