我试图在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语句都提供相同的输出
答案 0 :(得分:0)
由于myQueue += [toDo]
就地完成,因此在操作函数后该操作的效果仍然存在。
deQueue
未执行此操作,因此在调用完成后,您表示为列表的queue
尚未更新。
您需要决定是否希望您的函数更改您就地传递的队列,或者是否返回新队列。
如果您想要就地方法,请使用append
和pop(0)
并返回None
(请注意,当您代表pop(0)
时,depmix
为O(n)带列表的队列)。
在相反的阵营中,只需添加列表或将其切片并将其返回值指定给另一个名称。