检查给定元素是否在队列中

时间:2015-05-18 16:12:10

标签: python python-2.7 queue

我创建了一个队列,我需要检查一个给定的元素是否在该队列中,并根据它运行程序!以下是我的代码,它没有做我想要的,它给出了#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!"

3 个答案:

答案 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中的车辆: