反復処理が必要な python セットがあり、各要素について、それが制約を満たしているかどうかを確認し、そうであれば、それを削除して、おそらくすでに空ではない別のセットに追加します。それをバッファに追加し、ループが完了した後、バッファを反復処理してその内容をセットから削除することもできますが、これを行うためのより良い方法が必要です。
これが私がやろうとしていることです:
for elem in S:
if (P(elem)):
S.remove(elem)
T.add(elem)
これはうまくいきません。
動作するが汚れている修正は次のとおりです。
B = set()
for elem in S:
if (P(elem)):
B.add(elem)
T.add(elem)
for elem in B:
S.remove(elem)
編集:最善の解決策は次のようです:
for elem in S.copy():
if (P(elem)):
S.remove(elem)
T.add(elem)