我有一个单子,大概有20000个单子。我使用每个列表的第三个元素作为标志。我想在这个列表上做一些操作,只要至少有一个元素的标志是0,就像这样:
my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]
开始时,所有标志都是0。我使用一个while循环来检查是否至少有一个元素的标志为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循环时读取所有这些项,这会消耗大量时间!你有什么建议吗?