개요
튜플 내부의 요소들이 특정 데이터 타입 순서대로 배치되어 있는지 확인해야 하는 경우, isinstance 메서드와 연결 조건문(chained if)을 활용할 수 있습니다.
isinstance 메서드는 주어진 객체가 특정 데이터 타입에 속하는지 여부를 검사하는 파이썬 내장 함수입니다. 단순히 type()으로 자료형을 비교하는 것보다 상속 관계까지 고려할 수 있어 더 안전하고 권장되는 방식입니다.
연결 조건문(chained if)은 중첩된 선택문을 다르게 표현한 형태로, 여러 개의 if 조건을 and 연산자로 결합하여 그 결과를 한 번에 평가하는 방식입니다. 즉, 모든 조건이 참일 때만 최종 결과가 참(True)이 됩니다.
파이썬의 리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 값(이기종 값)을 하나의 컨테이너에 함께 저장할 수 있으므로, 튜플과 리스트가 섞인 복합 구조에서도 각 위치의 자료형을 검사할 수 있습니다.
아래는 실제 동작 예시입니다.
예제
my_tuple = ('Hi', ['there', 'Will'], 67)
print("The tuple is : ")
print(my_tuple)
my_result = isinstance(my_tuple, tuple) and isinstance(my_tuple[0], str) and isinstance(my_tuple[1], list) and isinstance(my_tuple[2], int)
print("Do all instances match the required data type in the same order ? ")
print(my_result)
출력 결과
The tuple is :
('Hi', ['there', 'Will'], 67)
Do all instances match the required data type in the same order ?
True
코드 설명
- 문자열, 리스트, 정수를 포함하는 튜플을 정의한 뒤 콘솔에 출력합니다.
isinstance메서드를 사용해 튜플 자체가tuple>인지, 첫 번째 요소가str, 두 번째 요소가list, 세 번째 요소가int인지 순서대로 검사합니다.- 튜플 내 모든 요소에 대해 검사를 수행해야 하므로, 각 조건을
and연산자로 연결합니다. - 평가 결과(불리언 값)를 변수
my_result에 할당합니다. - 최종 결과를 콘솔에 출력합니다. 모든 조건이 충족되면
True가 출력됩니다.
마무리
이처럼 isinstance와 and 연산자를 조합하면, 복잡한 중첩 조건문 없이도 튜플이나 리스트의 구조와 자료형 순서를 간결하게 검증할 수 있습니다. 데이터 유효성 검사나 API 응답 검증 등 실무에서 유용하게 활용할 수 있는 패턴입니다.