Python(2.7)队列重复

2024-04-25 21:32:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为一个简单的网络爬虫创建一个包含url字符串的队列。我不想将重复的项添加到队列中,所以我创建了一个helper函数来检查要添加到队列中的url,并查看它是否已经在队列中。我试图使用这个代码(我从一个类似的stackoverflow问题修改而来),pages is the queue:

def is_in_url_list(self, url):
    return url in self.pages.queue

然而,我似乎不能让这个工作。即使我传递了一些应该返回true的值,它也返回false。有更好的办法吗?谢谢!在


Tags: the函数字符串代码inself网络helper
1条回答
网友
1楼 · 发布于 2024-04-25 21:32:56

出于您的目的,使用queue是没有意义的,相反,您可以将普通的list与{a1}一起使用,或者可以使用^{}。如果您好奇,queue用于多处理,因为它提供了一个线程安全的数据结构,不同的线程可以使用它进行通信(如果这听起来像胡言乱语,请忽略它)

由于您描述的问题是一个常见的问题,所以我提供的链接实际上展示了如何将列表同时用作堆栈和队列。在

现在,deque是一个双端队列,因此d。这可以从两端弹出,需要时变成堆栈,必要时变成队列。在

现在您可能会想知道,如果deque和{}可以获得相同的结果,为什么要使用其中一个而不是另一个,文档中也对此进行了解释:

Though list objects support similar operations, they are optimized for fast fixed-length operations and incur O(n) memory movement costs for pop(0) and insert(0, v) operations which change both the size and position of the underlying data representation.

现在你可以选择了。在

相关问题 更多 >