gpt4 book ai didi

Python (2.7) 队列重复

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:43 25 4
gpt4 key购买 nike

我正在尝试为一个简单的网络爬虫创建一个包含 url 字符串的队列。我不想将重复的项目添加到队列中,因此我创建了一个辅助函数来检查要添加到队列中的 url 并查看它是否已经在其中。我试图使用这段代码(我从一个类似的 stackoverflow 问题修改而来),​​页面是队列:

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

但是,我似乎无法让它工作。即使当我传递一些应该返回 true 的东西时,它也会返回 false。有没有更好的方法来解决这个问题?谢谢!

最佳答案

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

由于您描述的问题很常见,我提供的链接实际上显示了如何将列表用作堆栈和队列。

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

现在你可能想知道,如果 dequelist 可以达到相同的结果,为什么要使用一个而不是另一个,这在文档中也有解释:

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.

现在选择权在您。

关于Python (2.7) 队列重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21890346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com