소개
이 랩에서는 Python 에서 변수가 집합 (set) 인지 확인하는 방법을 배우게 됩니다. 먼저 집합의 기본 특성, 즉 순서가 없고 요소의 고유성을 이해하는 것으로 시작합니다. 실습을 통해 중괄호와 set() 생성자를 사용하여 집합을 만들고, 요소 추가 및 제거, 멤버십 확인과 같은 일반적인 집합 연산을 탐구합니다.
그런 다음 이 랩에서는 type() 함수와 isinstance() 함수를 사용하여 변수가 실제로 집합인지 확인하는 방법을 안내합니다. 이 랩을 마치면 Python 코드에서 집합을 자신 있게 식별할 수 있는 지식과 기술을 갖추게 될 것입니다.
집합 (Set) 이해하기
이 단계에서는 Python 의 집합에 대해 배우게 됩니다. 집합은 고유한 요소들의 순서가 없는 컬렉션입니다. 즉, 집합은 중복된 값을 포함할 수 없으며, 집합 내 요소의 순서는 보장되지 않습니다. 집합은 합집합 (union), 교집합 (intersection), 차집합 (difference) 과 같은 수학적 집합 연산을 수행하는 데 유용합니다.
집합을 생성하는 것부터 시작해 보겠습니다. 중괄호 {} 또는 set() 생성자를 사용하여 집합을 만들 수 있습니다.
LabEx 환경에서 VS Code 편집기를 엽니다.
~/project디렉토리에sets_example.py라는 새 파일을 만듭니다.## Create a set using curly braces my_set = {1, 2, 3, 4, 5} print(my_set) ## Create a set using the set() constructor another_set = set([3, 4, 5, 6, 7]) print(another_set)터미널에서
python명령을 사용하여 스크립트를 실행합니다.python ~/project/sets_example.py다음과 같은 출력을 볼 수 있습니다.
{1, 2, 3, 4, 5} {3, 4, 5, 6, 7}
이제 몇 가지 일반적인 집합 연산을 살펴보겠습니다.
sets_example.py파일에 다음 코드를 추가합니다.## Add an element to a set my_set.add(6) print(my_set) ## Remove an element from a set my_set.remove(1) print(my_set) ## Check if an element is in a set print(3 in my_set) print(1 in my_set)스크립트를 다시 실행합니다.
python ~/project/sets_example.py다음과 유사한 출력을 볼 수 있습니다.
{1, 2, 3, 4, 5, 6} {2, 3, 4, 5, 6} True False
집합은 목록에서 중복된 요소를 제거하는 데 특히 유용합니다.
sets_example.py파일에 다음 코드를 추가합니다.## Create a list with duplicate elements my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] print(my_list) ## Convert the list to a set to remove duplicates unique_elements = set(my_list) print(unique_elements)스크립트를 실행합니다.
python ~/project/sets_example.py출력은 다음과 같아야 합니다.
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4] {1, 2, 3, 4}
보시다시피, 집합 unique_elements는 원래 목록에서 고유한 요소만 포함합니다.
type() 함수를 사용하여 식별하기
이 단계에서는 Python 에서 type() 함수를 사용하여 변수의 데이터 유형을 식별하는 방법을 배우게 됩니다. 데이터 유형을 이해하는 것은 정확하고 효율적인 코드를 작성하는 데 매우 중요합니다.
type() 함수는 객체의 유형을 반환합니다. 다양한 데이터 유형에서 어떻게 작동하는지 살펴보겠습니다.
LabEx 환경에서 VS Code 편집기를 엽니다.
~/project디렉토리에type_example.py라는 새 파일을 만듭니다.## Check the type of an integer x = 10 print(type(x)) ## Check the type of a float y = 3.14 print(type(y)) ## Check the type of a string z = "Hello" print(type(z)) ## Check the type of a boolean a = True print(type(a)) ## Check the type of a list b = [1, 2, 3] print(type(b)) ## Check the type of a tuple c = (1, 2, 3) print(type(c)) ## Check the type of a set d = {1, 2, 3} print(type(d)) ## Check the type of a dictionary e = {"name": "Alice", "age": 30} print(type(e))터미널에서
python명령을 사용하여 스크립트를 실행합니다.python ~/project/type_example.py다음과 같은 출력을 볼 수 있습니다.
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> <class 'list'> <class 'tuple'> <class 'set'> <class 'dict'>
출력은 각 변수의 데이터 유형을 보여줍니다. 예를 들어, <class 'int'>는 변수가 정수임을 나타내고, <class 'str'>는 변수가 문자열임을 나타냅니다.
변수의 데이터 유형을 이해하는 것은 해당 변수에 대해 수행할 수 있는 연산을 결정하기 때문에 중요합니다. 예를 들어, 정수와 부동 소수점 숫자에는 산술 연산을 수행할 수 있지만 문자열에는 수행할 수 없습니다.
type() 함수를 사용하여 연산을 수행하기 전에 변수가 특정 유형인지 확인하는 방법을 살펴보겠습니다.
type_example.py파일에 다음 코드를 추가합니다.## Check if a variable is an integer before adding 5 to it num = 10 if type(num) == int: result = num + 5 print(result) else: print("Variable is not an integer") ## Check if a variable is a string before concatenating it with another string text = "Hello" if type(text) == str: greeting = text + ", World!" print(greeting) else: print("Variable is not a string")스크립트를 다시 실행합니다.
python ~/project/type_example.py다음과 같은 출력을 볼 수 있습니다.
15 Hello, World!
이 예제에서 type() 함수는 덧셈 및 연결 연산을 수행하기 전에 변수 num이 정수이고 변수 text가 문자열인지 확인하는 데 사용됩니다.
isinstance() 함수로 확인하기
이 단계에서는 Python 에서 isinstance() 함수를 사용하여 객체가 특정 클래스 또는 유형의 인스턴스인지 확인하는 방법을 배우게 됩니다. 이는 type()을 사용하는 것보다 데이터 유형을 확인하는 더 강력하고 권장되는 방법입니다.
isinstance() 함수는 두 개의 인수를 받습니다. 확인할 객체와 확인할 클래스 또는 유형입니다. 객체가 지정된 클래스 또는 유형의 인스턴스인 경우 True를 반환하고, 그렇지 않으면 False를 반환합니다.
LabEx 환경에서 VS Code 편집기를 엽니다.
~/project디렉토리에isinstance_example.py라는 새 파일을 만듭니다.## Check if a variable is an integer x = 10 print(isinstance(x, int)) ## Check if a variable is a float y = 3.14 print(isinstance(y, float)) ## Check if a variable is a string z = "Hello" print(isinstance(z, str)) ## Check if a variable is a boolean a = True print(isinstance(a, bool)) ## Check if a variable is a list b = [1, 2, 3] print(isinstance(b, list)) ## Check if a variable is a tuple c = (1, 2, 3) print(isinstance(c, tuple)) ## Check if a variable is a set d = {1, 2, 3} print(isinstance(d, set)) ## Check if a variable is a dictionary e = {"name": "Alice", "age": 30} print(isinstance(e, dict))터미널에서
python명령을 사용하여 스크립트를 실행합니다.python ~/project/isinstance_example.py다음과 같은 출력을 볼 수 있습니다.
True True True True True True True True
모든 변수는 우리가 확인한 유형의 인스턴스이므로 isinstance()는 각 경우에 True를 반환했습니다.
isinstance()는 상속을 처리할 때 특히 유용합니다. 클래스가 다른 클래스에서 상속되는 경우, 하위 클래스의 객체도 상위 클래스의 인스턴스로 간주됩니다.
isinstance_example.py파일에 다음 코드를 추가합니다.class Animal: pass class Dog(Animal): pass my_dog = Dog() ## Check if my_dog is an instance of Dog print(isinstance(my_dog, Dog)) ## Check if my_dog is an instance of Animal print(isinstance(my_dog, Animal))스크립트를 다시 실행합니다.
python ~/project/isinstance_example.py다음과 같은 출력을 볼 수 있습니다.
True True
이 예제에서 Dog는 Animal에서 상속됩니다. 따라서 my_dog는 Dog와 Animal 모두의 인스턴스입니다.
isinstance()를 사용하는 것은 상속을 올바르게 처리하고 더 유연하기 때문에 일반적으로 type()보다 선호됩니다.
요약
이 랩에서는 Python 의 집합 (set) 에 대해 배웠습니다. 집합은 고유한 요소들의 정렬되지 않은 컬렉션입니다. 중괄호 {}와 set() 생성자를 사용하여 집합을 만들고, 요소 추가 및 제거와 같은 일반적인 집합 연산을 수행했습니다.
또한, 리스트를 집합으로 변환하여 리스트에서 중복된 요소를 제거하는 데 집합을 사용하는 방법을 살펴보았습니다. in 연산자를 사용하여 집합의 멤버십을 확인하는 방법도 배웠습니다.



