我有一个包含 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
消耗大量时间!你有什么建议吗?