[파이썬] 세트의 원소 타입 확인

파이썬에서 세트(Set)는 중복되지 않는 원소들의 집합을 나타내는 자료형입니다. 세트는 원소의 순서를 보장하지 않으며, 변경 가능한(Mutable) 자료형입니다.

세트를 사용할 때, 특정 원소의 타입을 확인하는 경우가 종종 발생합니다. 이 포스트에서는 파이썬에서 세트의 원소 타입을 확인하는 방법을 알아보겠습니다.

1. type() 함수 사용

가장 간단하게 세트의 원소 타입을 확인하는 방법은 type()이라는 내장 함수를 사용하는 것입니다. 이 함수는 인자로 전달된 객체의 타입을 반환합니다.

my_set = {1, 'two', 3.0, (4, 5, 6)}

for element in my_set:
    print(element, type(element))

위의 코드에서는 my_set이라는 세트의 각 원소와 해당 원소의 타입을 출력합니다. 출력 결과는 다음과 같을 수 있습니다.

1 <class 'int'>
two <class 'str'>
3.0 <class 'float'>
(4, 5, 6) <class 'tuple'>

2. isinstance() 함수 사용

또 다른 방법은 isinstance()라는 내장 함수를 사용하는 것입니다. isinstance() 함수는 주어진 객체가 특정 타입과 일치하는지 여부를 확인합니다.

my_set = {1, 'two', 3.0, (4, 5, 6)}

for element in my_set:
    if isinstance(element, int):
        print(f'{element}은(는) int 타입입니다.')
    elif isinstance(element, str):
        print(f'{element}은(는) str 타입입니다.')
    elif isinstance(element, float):
        print(f'{element}은(는) float 타입입니다.')
    elif isinstance(element, tuple):
        print(f'{element}은(는) tuple 타입입니다.')

위의 코드는 my_set의 각 원소를 탐색하면서, 해당 원소의 타입에 따라 메시지를 출력합니다. 출력 결과는 다음과 같을 수 있습니다.

1은(는) int 타입입니다.
two은(는) str 타입입니다.
3.0은(는) float 타입입니다.
(4, 5, 6)은(는) tuple 타입입니다.

3. type()isinstance()의 활용

type()isinstance() 함수는 실제로 함께 사용될 수도 있습니다. 원소 타입을 특정한 조건에 따라 처리해야 할 때 유용하게 사용할 수 있습니다.

my_set = {1, 'two', 3.0, (4, 5, 6)}

for element in my_set:
    if isinstance(element, int):
        print(f'{element}은(는) int 타입입니다.')
        # int 타입에 대한 추가 처리
    elif isinstance(element, str):
        print(f'{element}은(는) str 타입입니다.')
        # str 타입에 대한 추가 처리
    elif isinstance(element, float):
        print(f'{element}은(는) float 타입입니다.')
        # float 타입에 대한 추가 처리
    else:
        print(f'{element}은(는) 기타 타입입니다.')
        # 기타 타입에 대한 처리

위의 코드는 my_set의 각 원소를 탐색하면서, 해당 원소의 타입에 따라 메시지를 출력합니다. 추가로 타입에 따른 처리를 추가할 수도 있습니다.

세트(Set)의 원소 타입을 확인함으로써, 사용하려는 원소의 타입을 미리 파악하고 원본 데이터를 효율적으로 다룰 수 있습니다. 이를 통해 파이썬의 다양한 기능을 활용하여 원하는 작업을 수행할 수 있습니다.