私はいくつかのデータを削除しようとする関数remove_it()
があり、削除されたデータはセットremoved
に追加されています。メインロジックは削除する方がいる場合は、削除しておくことで、私のコードは次のようになります。それは私を少し気により良いwhileループ構造のPython
removed = set()
prev_count = -1
while prev_count != len(removed):
prev_count = len(removed)
remove_it()
while
ループ条件と次の行がお互いに非常に似ていること。それは正常ですか、それとももっと良い方法ですか?
ロジックは非常に複雑です。いくつかのグラフ構造トポロジを検出し、削除の各ラウンド後にトポロジが変化し、削除が完了するまでどのように変化するかわかりません。
私はremove_it()
から復帰ブール値を考えて、セットremoved
が変更されたかどうかを追跡しました。それで、whileループは、私にも奇妙な、
while remove_it():
pass
のようになります。より良い方法がありますか?
あなたはデータの例を挙げることができますか?問題をよりよく理解するのに役立ちます/最適な解決策を提案してください – epattaro
面白いです。私のより強い言葉であるCでは、while(function()); * *明示的*セミコロンに注意してください。 Pythonのようなものはありませんか? – usr2564301
2番目はかなり自然です。おそらく 'remove() 'という名前に変更され、実行されます。つまり、削除しているうちに、続行します。 –