I have a list consisting of like 20000 lists. I use each list’s 3rd element as a flag. I want to do some operations on this list as long as at least one element’s flag is 0, it’s like:
my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]
In the beginning, all flags are 0. I use a while loop to check if at least one element’s flag is 0:
def check(list_):
for item in list_:
if item[2] == 0:
return True
return False
If check(my_list)
returns True
, then I continue working on my list:
while check(my_list):
for item in my_list:
if condition:
item[2] = 1
else:
do_sth()
Actually, I wanted to remove an element in my_list as I iterated over it, but I’m not allowed to remove items as I iterate over it.
Original my_list didn’t have flags:
my_list = [["a", "b"], ["c", "d"], ["e", "f"], .....]
Since I couldn’t remove elements as I iterated over it, I invented these flags. But the my_list
contains many items, and while
loop reads all of them at each for
loop, and it consumes lots of time! Do you have any suggestions?