Python:What';set.pop()的用例是什么?
Python内置类型Python:What';set.pop()的用例是什么?,python,Python,Python内置类型set有一个名为的方法,来自文档: 从集合中删除并返回任意元素。引发关键错误 如果集合为空 我想不出这个特性的任何用例,它似乎是试图实现list接口 为什么这是Python标准的一部分?当您有一个没有特定顺序的作业池要处理时,您会使用它。作业只能执行一次,但执行一次后可以再次添加: jobs = {job1, job2, job3} while jobs: job = jobs.pop() job.process() 其中job.process()。处理完
set
有一个名为的方法,来自文档:
从集合中删除并返回任意元素。引发关键错误
如果集合为空
我想不出这个特性的任何用例,它似乎是试图实现list
接口
为什么这是Python标准的一部分?当您有一个没有特定顺序的作业池要处理时,您会使用它。作业只能执行一次,但执行一次后可以再次添加:
jobs = {job1, job2, job3}
while jobs:
job = jobs.pop()
job.process()
其中job.process()。处理完所有作业后,集合将为空,循环完成
或者,对于一个不那么做作的真实示例,请参见distlib
库中的(例如由pip
使用),该库使用todo
集跟踪仍需要处理的分发提供商
该方法是的镜像,其中明确提到了集合算法:
popitem()
用于在字典上进行破坏性迭代,这在集合算法中经常使用
在将set
添加到该语言之前,您需要使用带有None
值的字典来模拟集合。它实际上是和的镜像。它用于处理需要“下一个”值但不需要顺序的情况。这似乎是一个非常做作的示例。在大多数情况下,似乎不太可能没有更喜欢的订单。此外,您似乎不太可能只想对排队的作业进行重复数据消除。一个更现实的场景可能会有一个挂起的作业队列和一组执行的作业,这样一个作业就不会执行两次。@branks:这并不像你想象的那么牵强。例如,使用的集合与此完全相同。