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()
함수를 사용했습니다. 튜플.
위 코드의 출력은 아래와 같습니다.
튜플의 마지막 요소를 가져오는 또 다른 방법은 아래와 같이 음수 인덱스를 사용하는 것입니다.
fruits_tuple = ("banana", "apple", "orange", "guava")
last_fruit = fruits_tuple[-1]
print(last_fruit)
출력:
오류가 발생하지 않고 사용자에게 도움이 될 수 있는 중요한 데이터가 손실되지 않도록 하는 또 다른 방법이 있습니다. 가장 좋은 방법은 아래와 같이 항상 try-except
문을 사용하는 것입니다.
fruits_tuple = ("banana", "apple", "orange", "guava")
try:
last_fruit = fruits_tuple[5]
except IndexError:
print("Index out of range.")
try-except
문을 사용하면 오류가 있는 경우 응용 프로그램이 충돌하거나 작동이 중지되지 않도록 할 수 있습니다. 대신 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.")
위 코드의 출력은 아래와 같습니다.
결론적으로 tuple index out of range
오류는 튜플의 범위 내에 있지 않은 인덱스를 사용하여 튜플의 요소에 액세스하려고 할 때 발생합니다.
튜플의 길이에 익숙하지 않은 경우 len()
함수를 사용하는 것이 중요합니다. 또한 try-except
블록을 사용하여 오류가 발생하기 전에 오류를 포착하고 변수 유형 검사를 통해 인덱스가 올바른지 확인합니다. 우리는 이 오류를 피하기 위해 튜플 범위 내에 액세스하려고 하고 변수는 각각 튜플
유형입니다.
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
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.