class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def add(self, item):
self.items.append(item)
def remove(self):
self.items.reverse()
return self.items.pop()
我需要创建一个函数,该函数接受一个数字作为参数,然后一个队列删除该数字在队列中的每一次出现,但不包括遗漏。我已经建立了一个模型,上面是我的队列的样子,下面是一个队列应该是什么样子的模型(非常混乱,处于早期阶段)
def remove_item(q, val):
q_temp = Queue
while not q.is_empty():
q_temp.add(q.remove)
remove_item()
我不能以任何方式直接修改它,也不能将队列的元素放在普通列表中。有什么解决办法吗
编辑:它也需要像这样在空闲状态下可执行
remove_item(queue,number)
该代码将失败,因为缩进错误:
您将
q_temp
设置为类,而不是实例,使其无法修改而且,
.remove
方法不起作用,有一种更简单的方法可以让它起作用:但我没有一个(完全有效的)答案。我可以得到队列的项目,我可以使用条件列表理解来删除确定的项目,并将其应用到队列中
如果让我们使用
Queue
类,只使用类方法(我们可以生成变量,生成另一个队列,.remove
和.add
数字,但不使用.items
),您可以这样做:我不认为这是正确的。它需要定义
Queue.__len__()
*:或者修改代码并定义
__iter__
之类的我会这样做:
这样你就可以在队列中“循环”了,你可以查看每个数字,如果不是你应该删除的数字,那么就再添加一次。不过,您需要创建
.length()
方法相关问题 更多 >
编程相关推荐