python里面的切片[__-1] 和 reverse()函数区别
先说结论:切片[::-1] 有返回值, reverse()函数没有返回值
有返回值的可以 return、赋值。没有的不能 return、赋值。
问题来源,今天刷剑指offer第3题的时候发现的,具体如下
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
l=[]
while listNode:
l.append(listNode.val)
listNode = listNode.next
return l.reverse()
#return l[::-1]
# write code here
我 return l[::-1]
可以通过,但是 return l.reverse()
就不行。原因就是切片[::-1] 有返回值, reverse()函数没有返回值
改成下面这样就可以了
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
l=[]
while listNode:
l.append(listNode.val)
listNode = listNode.next
l.reverse()
return l
#return l[::-1]
# write code here
就是先反转,再返回
还是基础没打牢固啊