Python 組み込み型には、 docs のpop()set
というメソッドがあります。
セットから任意の要素を削除して返します。セットが空の場合、KeyError を発生させます。
この機能のユースケースは思いつきませんでしたlist
。インターフェースを実装しようとしているようです。
なぜこれが Python 標準の一部なのですか?
特定の順序で処理するジョブのプールがある場合に使用します。ジョブは 1 回だけ実行する必要がありますが、一度実行すると再度追加できます。
jobs = {job1, job2, job3}
while jobs:
job = jobs.pop()
job.process()
潜在的にjob.process()
山積みにさらに多くの仕事を追加します。すべてのジョブが処理されると、セットは空になり、ループが終了します。
または、あまり工夫されていない実際の例については、ライブラリのDependencyFinder.find()
メソッド(たとえば、 で使用) を参照してください。これは、セットを使用して、まだ処理が必要なディストリビューション プロバイダーを追跡します。distlib
pip
todo
dict.popitem()
メソッドはメソッドのミラーであり、集合アルゴリズムについて明示的に言及しています。
popitem()
セットアルゴリズムでよく使用されるように、辞書を破壊的に反復するのに役立ちます。
が言語に追加される前set
は、値を持つ辞書を使用しNone
てセットをエミュレートしていました。