Python 内置类型set
有一个名为pop()的方法,来自文档:
从集合中移除并返回任意元素。如果集合为空,则引发 KeyError。
我想不出这个功能的任何用例,这似乎是一种实现list
接口的尝试。
为什么这部分是 Python 标准?
当您有大量作业要按特定顺序处理时,您会使用它。作业应该只执行一次,但是一旦执行可以再次添加:
jobs = {job1, job2, job3}
while jobs:
job = jobs.pop()
job.process()
可能会增加更多的job.process()
工作岗位。处理完所有作业后,该集合将为空并且循环完成。
或者,对于一个不太人为的真实世界示例,请参阅库中的DependencyFinder.find()
方法(例如,由使用),它使用一组来跟踪仍需要处理的分发提供商。distlib
pip
todo
该方法是该方法的镜像dict.popitem()
,它明确提到了集合算法:
popitem()
对字典的破坏性迭代很有用,这在集合算法中经常使用。
在set
添加到语言之前,您将使用带有None
值的字典来模拟集合。