python队列实现

时间:2017-11-18 23:24:36

标签: python-3.x queue global-variables

我试图在python中实现一个队列,enQueue更新了队列但是我很抱歉为什么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语句都提供相同的输出

1 个答案:

答案 0 :(得分:0)

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

deQueue未执行此操作,因此在调用完成后,您表示为列表的queue尚未更新。

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

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

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