与返回pop()相比,pop()返回什么?

时间:2019-12-08 01:49:27

标签: python-3.x

我正在做这个HackerRank挑战,涉及实现队列和堆栈结构,并且遇到了关于Python中的 pop()函数的一些奇怪行为。

https://www.hackerrank.com/challenges/30-queues-stacks/problem

class Solution:
    def __init__(self):
        self.queue = []
        self.stack = []

    def pushCharacter(self, item):
        self.stack.append(item)

    def enqueueCharacter(self, item):
        self.queue.insert(0, item)

    def popCharacter(self):
        return self.stack.pop()

    def dequeueCharacter(self):
        return self.queue.pop()

这是我的代码,但是如果我要从 popCharacter() dequeueCharacter()函数中删除返回调用,而只需 pop ()返回值,它不满足测试用例! pop()是否不显式返回数组的最后一个值?和 return pop()有什么区别?

1 个答案:

答案 0 :(得分:2)

如果您这样做:

def popCharacter(self):
    return self.stack.pop()

您正在返回pop()返回的内容。但是,如果您这样做:

def popCharacter(self):
    self.stack.pop()

您每次都返回None。 Python不是Bash,所以没有魔术“返回任何最近返回的函数调用”功能。如果您要返回None以外的其他内容,则实际上需要return