我创建了一个队列,我需要检查一个给定的元素是否在该队列中,并根据它运行程序!以下是我的代码,它没有做我想要的,它给出了#34;重复"所有输入!请帮忙!
def Arrival(vehicle):
if vehicle in q1.items:
print "duplicate!"
else:
if q1.size()<10:
if q3.isEmpty()==False:
EnterOld=q3.dequeue()
q1.enqueue(EnterOld)
print "The car number "+str(EnterOld)+" can enter now from the waiting line!"
else:
print"the car number "+str(vehicle)+" can enter the park!"
答案 0 :(得分:1)
问题出在你的if语句中。
if vehicle in q1.items or q3.items:
这样做是检查'车辆是q1.items
'的一个元素,如果不是它在被评估为布尔值时检查'is q3.items
'True
?
你应该这样做:
if vehicle in q1.items or vehicle in q3.items:
答案 1 :(得分:1)
class queue:
def __init__(self):
self.items = []
def __iter__(self):
for i in self.items:
yield i
def isEmpty(self):
return self.items == []
def enqueue(self,item):
self.items.insert(0,item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
def front(self):
return self.items[len(self.items)-1]
def index(self,item):
return self.items.index(item)
答案 2 :(得分:0)
据我所知,如果车辆在q1和q3中都是重复的,那么这应该是
如果q1.items中的车辆和q3.items中的车辆: