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
루프 에서 모든 항목을 읽고 많은 시간을 소비합니다! 의견 있으십니까?
None
또는 []
목록을 반복 하면서 항목을 바꿀 수 있습니다. 내부 루프의 각 패스 전에 모든 항목을 반복하는 'check ()`로 전체 목록을 확인하는 것은 매우 느린 접근 방식입니다.