IndexError:파이썬에서 범위를 벗어난 튜플 인덱스

Rana Hasnain Khan 2023년6월21일
IndexError:파이썬에서 범위를 벗어난 튜플 인덱스

이 기사에서는 IndexError: tuple index out of range 오류가 발생하는 이유와 예제를 통해 Python에서 이를 해결할 수 있는 방법을 설명합니다.

Python에서 IndexError: 범위를 벗어난 튜플 인덱스

오류가 발생하기 전에 튜플이 무엇인지 이해해야 합니다. 튜플은 괄호로 묶고 쉼표로 구분된 정렬된 요소의 모음입니다.

튜플의 요소를 변경할 수 없습니다. 따라서 이들은 불변 요소라고도 합니다.

튜플을 사용하는 동안 직면하는 가장 일반적인 문제는 인덱스가 범위를 벗어남과 같은 오류입니다. 이 오류는 때때로 우리가 존재하지 않는 튜플 내부의 인덱스에 액세스하려고 시도하여 오류를 반환하기 때문입니다. 이 오류 뒤에는 두 가지 주요 이유가 있을 수 있습니다.

예를 들어 길이가 7인 튜플이 있고 이 튜플의 마지막 인덱스를 호출하려는 경우 6으로 호출하는 대신 7이라고 합니다. 배열과 마찬가지로 튜플도 0에서 시작하기 때문에 튜플 인덱스가 범위를 벗어났습니다 오류를 반환합니다.

두 번째 이유는 튜플 구문을 사용하여 요소에 액세스하려는 경우 요소가 튜플에 저장되지 않기 때문입니다. 대신 배열이나 변수에 저장됩니다. 동일한 오류를 반환할 수 있습니다.

이러한 상황을 피하려면 튜플이 있는지 확인하고 튜플 범위 내의 요소에 액세스하려고 시도해야 합니다.

아래와 같이 과일 튜플을 만들고 이 튜플의 마지막 인덱스에 액세스하려고 시도하는 예를 들어 보겠습니다.

fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[len(fruits_tuple) - 1]
print(last_fruit)

위의 코드에서 볼 수 있듯이 4개의 과일 이름으로 구성된 튜플을 생성했습니다. 튜플에서 마지막 요소를 호출할 때 튜플의 길이에 관계없이 튜플의 마지막 요소를 얻을 수 있도록 튜플의 길이를 가져오고 튜플에서 1을 빼는 len() 함수를 사용했습니다. 튜플.

위 코드의 출력은 아래와 같습니다.

Python에서 len을 사용하여 튜플의 마지막 요소 가져오기

튜플의 마지막 요소를 가져오는 또 다른 방법은 아래와 같이 음수 인덱스를 사용하는 것입니다.

fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[-1]
print(last_fruit)

출력:

Python에서 len을 사용하여 튜플의 마지막 요소 가져오기

오류가 발생하지 않고 사용자에게 도움이 될 수 있는 중요한 데이터가 손실되지 않도록 하는 또 다른 방법이 있습니다. 가장 좋은 방법은 아래와 같이 항상 try-except 문을 사용하는 것입니다.

fruits_tuple = ("banana", "apple", "orange", "guava")
try:
    last_fruit = fruits_tuple[5]
except IndexError:
    print("Index out of range.")

try-except 문을 사용하면 오류가 있는 경우 응용 프로그램이 충돌하거나 작동이 중지되지 않도록 할 수 있습니다. 대신 except 문을 사용하여 로그에 오류를 표시하거나 저장할 수 있습니다.

위 코드의 결과는 아래와 같습니다.

Python에서 try except 문을 사용하여 튜플의 마지막 요소 가져오기

위의 예제에서 보듯이 5를 사용하여 튜플의 6번째 인덱스를 호출하려고 시도했으며 코드는 응용 프로그램을 중단하거나 중지하는 대신 코드를 출력합니다.

이렇게 하면 index out of range 오류가 발생하면 except 블록에서 이를 포착하여 프로그램에 적합한 방식으로 처리할 수 있습니다.

요소를 변수에서 호출하는지 튜플에서 호출하는지 확실하지 않은 두 번째 문제에 대한 해결책은 Python의 type() 함수와 if-else 문을 사용하는 것입니다.

변수 유형이 튜플이면 함수를 실행합니다. 그렇지 않으면 아래와 같이 다른 기능을 실행합니다.

fruits_tuple = ("banana", "apple", "orange", "guava")
if type(fruits_tuple) == tuple:
    print(fruits_tuple[2])
else:
    print("Variable is not a tuple.")

위 코드의 출력은 아래와 같습니다.

Python에서 유형 함수를 사용하여 튜플의 마지막 요소 가져오기

결론적으로 tuple index out of range 오류는 튜플의 범위 내에 있지 않은 인덱스를 사용하여 튜플의 요소에 액세스하려고 할 때 발생합니다.

튜플의 길이에 익숙하지 않은 경우 len() 함수를 사용하는 것이 중요합니다. 또한 try-except 블록을 사용하여 오류가 발생하기 전에 오류를 포착하고 변수 유형 검사를 통해 인덱스가 올바른지 확인합니다. 우리는 이 오류를 피하기 위해 튜플 범위 내에 액세스하려고 하고 변수는 각각 튜플 유형입니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

관련 문장 - Python Error