Я хочу иметь функцию, которая будет возвращать обратный список, который ему дан - используя рекурсию. Как я могу это сделать?
Почему бы и нет:
a = [1,2,3,4,5] a = [a[i] for i in xrange(len(a)-1, -1, -1)] # now a is reversed!
Использование изменяемого аргумента по умолчанию и рекурсии:
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]
hello(x[:-1])
x[:-1]
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]
Возьмите первый элемент, рекурсивно переверните остальную часть списка и добавьте первый элемент в конец списка.