>  기사  >  백엔드 개발  >  목록 요소를 합산할 때 내 코드에서 IndexError가 발생하는 이유는 무엇입니까?

목록 요소를 합산할 때 내 코드에서 IndexError가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 06:31:02455검색

Why Does My Code Throw an IndexError When Summing List Elements?

루프 내에서 목록 요소에 액세스할 때 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.