Python内置类型set有一个名为pop()的方法,来自docs:
从集合中删除并返回任意元素.如果集合为空,则引发KeyError.
我想不出这个功能的任何用例,似乎是尝试实现该list接口.
为什么这部分是Python标准?
当你有一个工作池没有特定的顺序处理时,你就可以使用它.作业只应执行一次,但一旦执行就可以再次添加:
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值的字典来模拟集合.
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |