나는 20000 개의 목록과 같은 목록으로 구성되어있다. 각 목록의 세 번째 요소를 플래그로 사용합니다. 나는만큼 적어도 하나 개의 원소의 플래그가 0으로,이 같은의이 목록에 일부 작업을 수행 할 : 태초에 목록의 모든 요소가 조건과 일치하는지 확인하는 방법?
my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]
모든 플래그가 0 내가 확인하기 위해 while 루프를 사용할 수 있습니다 적어도 하나 개의 원소의 경우 플래그가 0 :
def check(lista):
for item in lista:
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 = [["a", "b"], ["c", "d"], ["e", "f"], .....]
:
원본을 my_list는 플래그를 가지고 있지 않았다. 그러나 my_list
에는 많은 항목이 포함되어 있으며 while
루프는 각각 for
루프에서 모든 루프를 읽으며 많은 시간을 소비합니다! 의견 있으십니까?
보인다.문맥을 좀 더 설명해 주면 더 적절한 것을 제안 할 수 있습니다. – uselpa
아마도 목록을 제거하는 대신 목록을 반복 할 때 항목을 '없음'또는 '[]'로 바꿀 수 있습니다. 'check()'를 사용하여 내부 목록에서 각 항목을 반복하기 전에 전체 목록을 반복 검사하는 것은 매우 느린 방법입니다. – martineau