20000のようなリストで構成されるリストがあります。各リストの3番目の要素をフラグとして使用します。少なくとも1つの要素のフラグが0である限り、このリストでいくつかの操作を実行したいのですが、次のようになります。
my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]
最初はすべてのフラグが0です。whileループを使用して、少なくとも1つの要素のフラグが0かどうかを確認します。
def check(list_):
    for item in list_:
        if item[2] == 0:
            return True
    return False
がcheck(my_list)返された場合はTrue、リストの作業を続けます。
while check(my_list):
    for item in my_list:
        if condition:
            item[2] = 1
        else:
            do_sth()
実際、繰り返し処理を行っているときにmy_listの要素を削除したかったのですが、繰り返し処理を行っているため、アイテムを削除することはできません。
元のmy_listにはフラグがありませんでした:
my_list = [["a", "b"], ["c", "d"], ["e", "f"], .....]
繰り返し処理中に要素を削除できなかったため、これらのフラグを考案しました。しかし、にmy_listは多くのアイテムが含まれており、whileループは各forループでそれらすべてを読み取り、多くの時間を消費します。何か提案はありますか?
Noneか、アイテムを置き換えることができ[]ます。'check() `でリスト全体をチェックして、内部ループの各パスの前にすべてのアイテムを繰り返し処理することは、非常に遅いアプローチです。