python 队列实现



im 试图在 python 中实现队列,enQueue 更新队列,但 im 对为什么 deQueue 不会更新队列感到困惑

def enQueue(toDo,myQueue):
   myQueue += [toDo] 
   return myQueue
def deQueue(myQueue):
   if myQueue != []:
      return myQueue[1:]
def makeQueue():
    return[]

def main()
   football = event("10-10-2019","12:00","pitch")
   enQueue(football, getdone)
   print(getdone)
   deQueue(getdone)
   print(getdone)

两个 print 语句给出相同的输出

由于myQueue += [toDo]是就地完成的,因此该操作的效果在函数调用后仍然存在。

deQueue不会就地执行它,因此在进行调用后,您表示为列表的queue尚未更新。


您需要决定是希望函数更改就地传递的队列,还是返回新队列。

如果需要就地方法,请使用 appendpop(0) 并返回None(但请注意,当您使用列表表示队列时,pop(0)为 O(n(。

在相反的阵营中,只需添加列表或将其切片并将其返回值分配给另一个名称。

相关内容

  • 没有找到相关文章