루프 내에서 목록 요소에 액세스할 때 IndexError 수정
루프 내에서 인덱스를 사용하여 목록 요소에 액세스하려고 하면 다음과 같은 결과가 발생할 수 있습니다. IndexError 또는 TypeError와 같은 오류. 이러한 문제를 해결하려면 올바른 루프 구조를 이해하는 것이 중요합니다.
오류 설명:
다음 코드를 고려하세요.
<code class="python">def sumAnArray(ar): theSum = 0 for i in ar: theSum = theSum + ar[i] return theSum</code>
이 코드는 목록의 값을 합산합니다. 그러나 실행하면 IndexError가 발생합니다.
루프 작업:
목록과 같이 반복 가능한 개체와 함께 for 루프를 사용하는 경우 루프 변수(i 경우)는 iterable의 현재 요소를 나타냅니다. 주어진 코드에서 루프는 ar의 요소를 반복하며 i는 각 요소의 값을 취합니다.
오류 분석:
위의 코드에서 오류는 다음과 같은 경우에 발생합니다. i 값에 해당하는 ar 요소를 검색하려고 시도하는 ar[i]에 액세스하려고 합니다. 그러나 iterable이 있는 for 루프에서 i는 요소의 인덱스가 아닌 요소 자체를 나타냅니다. i를 직접 사용하여 ar 인덱스를 시도하면 i가 범위를 벗어나는 경우(예: 목록의 길이보다 크거나 같은 경우) IndexError가 발생합니다.
올바른 루프:
이 오류를 해결하려면 다음 요소에 올바르게 액세스하도록 루프를 수정해야 합니다. 목록:
<code class="python">for i in ar: theSum = theSum + i</code>
이 버전은 목록의 요소를 반복하고 각 요소의 값을 합계에 추가하여 인덱스 관련 오류를 방지합니다.
대체 해결 방법:
목록의 요소를 반복하고 인덱스로 액세스하는 또 다른 접근 방식은 반복하는 대신 범위를 사용하는 것입니다. 목록 자체에 대해:
<code class="python">for i in range(len(ar)): theSum = theSum + ar[i]</code>
이 접근 방식을 사용하면 i가 ar에 대해 유효한 모든 인덱스 값을 사용하여 인덱싱 오류를 방지할 수 있습니다.
위 내용은 목록 요소를 합산할 때 내 코드에서 IndexError가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!