Python:set.pop()的用例是什么?

Fab*_*ian 5 python

Python内置类型set有一个名为pop()的方法,来自docs:

从集合中删除并返回任意元素.如果集合为空,则引发KeyError.

我想不出这个功能的任何用例,似乎是尝试实现该list接口.

为什么这部分是Python标准?

Mar*_*ers 9

当你有一个工作池没有特定的顺序处理时,你就可以使用它.作业只应执行一次,但一旦执行就可以再次添加:

jobs = set([job1, job2, job3])

while jobs:
    job = jobs.pop()
    job.process()
Run Code Online (Sandbox Code Playgroud)

其中,job.process()潜在增加了更多的就业机会,以堆.处理完所有作业后,该集将为空并且循环完成.

或者,对于更小做作,真实的例子,请参见DependencyFinder.find()方法distlib文库(使用pip,例如),其使用一todo组跟踪仍需处理分配商.

该方法是一个反射镜dict.popitem()的方法,其中明确提到集算法:

popitem() 对于在字典中进行破坏性迭代很有用,就像在集合算法中经常使用的那样.

set添加到语言之前,您将使用带有None值的字典来模拟集合.