튜플 안의 요소들이 중복 없이 모두 서로 다른 값인지 확인해야 하는 경우, set과 len 메서드를 활용하면 간단하게 해결할 수 있습니다.
파이썬에는 set이라는 자료형이 기본으로 제공됩니다. 셋(set)은 중복된 요소를 허용하지 않고 고유한 값만 저장하는 특징을 가지고 있습니다.
또한 len 메서드는 인자로 전달된 객체의 길이(요소 개수)를 반환합니다. 이 두 가지 성질을 조합하면 튜플의 고유성 여부를 손쉽게 판별할 수 있습니다.
동작 원리는 다음과 같습니다. 튜플을 셋으로 변환하면 중복 요소가 자동으로 제거되므로, 변환된 셋의 길이와 원본 튜플의 길이를 비교했을 때 두 값이 같다면 모든 요소가 고유하다는 의미입니다.
예제 코드
my_tuple_1 = (11, 14, 54, 0, 58, 41)
print("The tuple is : ")
print(my_tuple_1)
my_result = len(set(my_tuple_1)) == len(my_tuple_1)
print("Is the tuple distinct ? ")
print(my_result)실행 결과
The tuple is : (11, 14, 54, 0, 58, 41) Is the tuple distinct ? True
코드 설명
- 요소들을 담은 튜플을 정의하고, 콘솔에 출력합니다.
- 튜플을
set()으로 변환한 뒤 그 길이를 구하고, 원본 튜플의 길이도 함께 구합니다. ==연산자를 사용해 두 길이를 비교합니다.- 비교 결과(불리언 값)를 변수에 할당합니다.
- 결과를 콘솔에 출력합니다. 두 길이가 같으면
True, 중복이 있어 다르면False가 반환됩니다.
이 방법은 시간 복잡도 O(n)으로 매우 효율적이며, 숫자뿐 아니라 문자열 등 해시 가능한(hashable) 모든 요소를 가진 튜플에 동일하게 적용할 수 있다는 장점이 있습니다.