반복자와 반복자를 다룰 때는 소비 특성을 이해하는 것이 중요합니다. Python에서는 반복자는 한 번만 사용할 수 있습니다. 즉, 반복자에 대해 반복하면 소진되어 다시 사용할 수 없습니다.
다음 코드를 고려하세요.
def test(data): for row in data: print("first loop") for row in data: print("second loop")
데이터가 비어 있지 않은 반복자(예: 목록 반복자 또는 생성기 표현식), 코드는 "첫 번째 루프"를 여러 번 인쇄하지만 "두 번째 루프"는 인쇄되지 않습니다. 이는 첫 번째 루프에서 반복자가 소비되었기 때문입니다.
list/set/dict 이해, list() 호출, sum() 또는 축소와 같은 다른 형태의 반복에서도 동일한 문제가 발생합니다. () 등이 있습니다.
그러나 데이터가 목록이나 범위(시퀀스)와 같은 또 다른 반복 가능 항목인 경우 두 루프 모두 예상대로 실행되어 "첫 번째 루프"를 인쇄합니다. 그리고 각 요소에 대한 "두 번째 루프"입니다. 이는 이러한 반복 가능 항목이 여러 번 반복될 수 있기 때문입니다.
반복하자면 반복자를 사용할 때 단일 사용 특성을 기억하는 것이 중요합니다. 데이터를 재사용하려면 요소를 목록에 저장하거나 itertools.tee()를 사용하여 독립적인 반복자를 생성하는 것이 좋습니다.
위 내용은 반복자를 두 번 반복할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!