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

就是先反转,再返回

还是基础没打牢固啊

posted on 2021-06-09 19:53  雾恋过往  阅读(325)  评论(0编辑  收藏  举报

Live2D