使用+
操作符可以很好地工作。如果我尝试使用append
方法编写,它将返回None
。你知道吗
revFromEnd2
是否可以使用append
方法反转列表?你知道吗
def revFromEnd(L):
if len(L)==1:
return L
else:
return [L[-1]] + revFromEnd(L[:-1])
def revFromEnd2(L):
if len(L)==1:
return L
else:
return [L[-1]].append(revFromEnd2(L[:-1]))
print(revFromEnd([1,2,3,4,5]))
print()
print(revFromEnd2([1,2,3,4,5]))
有一个内置函数
reversed
:您也可以使用切片(它们的语法是[开始:结束:step],因此,如果为step定义负值,它将在相反方向生成一个切片):
UPD:是的,递归非常好,但是既然您使用的是Python和it doesn't optimize tail recursion,那么最好使用更明显的方法:)
list.append
将项附加到列表中,并且不返回任何内容(=returnNone
),这与返回连接两个列表的新列表的+
运算符不同:顺便说一句,考虑到
recvFromEnd1/2
返回list
,您最好使用list.extend
:相关问题 更多 >
编程相关推荐