[파이썬] 집합의 요소 복제와 연산

파이썬에서 집합(set)은 고유한 요소의 모음을 나타내는 자료구조입니다. 집합은 중복된 요소를 허용하지 않고, 순서를 가지지 않습니다. 따라서 집합을 사용하여 고유한 값만을 저장하거나 집합 간의 연산을 수행할 수 있습니다.

집합의 요소 복제

집합은 중복된 요소를 허용하지 않기 때문에, 동일한 값을 가진 여러 개의 요소를 추가해도 실제로는 하나의 요소만 유지됩니다. 예를 들어, 다음과 같이 집합을 정의해보겠습니다.

my_set = {1, 2, 3, 3, 4, 5}
print(my_set)

위의 코드를 실행하면, 다음과 같은 결과가 나타납니다.

{1, 2, 3, 4, 5}

my_set에는 중복된 값인 3이 두 번 있다고 정의했지만, 실제로는 하나의 요소만 유지되어 출력됩니다. 이는 집합의 특징 중 하나로, 각 요소는 고유한 값을 갖게 됩니다.

집합의 연산

파이썬에서는 집합 간의 다양한 연산을 지원합니다. 주요 집합 연산으로는 합집합, 교집합, 차집합 등이 있습니다.

합집합 연산

두 개의 집합을 합집합으로 합하는 방법에는 두 가지가 있습니다. 첫 번째는 union() 함수를 사용하는 방법이며, 두 번째는 | 연산자를 사용하는 방법입니다. 예를 들어, 다음과 같이 두 개의 집합을 정의하고 합집합을 구해보겠습니다.

set_a = {1, 2, 3}
set_b = {3, 4, 5}

# union() 함수 사용
result = set_a.union(set_b)
print(result)

# | 연산자 사용
result = set_a | set_b
print(result)

위의 코드를 실행하면, 다음과 같은 결과가 나타납니다.

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

교집합 연산

두 개의 집합의 공통된 요소만을 가져오는 교집합 연산에는 intersection() 함수를 사용하거나 & 연산자를 사용할 수 있습니다. 예를 들어, 다음과 같이 두 개의 집합을 정의하고 교집합을 구해보겠습니다.

set_a = {1, 2, 3}
set_b = {3, 4, 5}

# intersection() 함수 사용
result = set_a.intersection(set_b)
print(result)

# & 연산자 사용
result = set_a & set_b
print(result)

위의 코드를 실행하면, 다음과 같은 결과가 나타납니다.

{3}
{3}

차집합 연산

한 집합에서 다른 집합의 요소를 제외한 차집합을 구하는 방법에는 difference() 함수를 사용하거나 - 연산자를 사용할 수 있습니다. 예를 들어, 다음과 같이 두 개의 집합을 정의하고 차집합을 구해보겠습니다.

set_a = {1, 2, 3}
set_b = {3, 4, 5}

# difference() 함수 사용
result = set_a.difference(set_b)
print(result)

# - 연산자 사용
result = set_a - set_b
print(result)

위의 코드를 실행하면, 다음과 같은 결과가 나타납니다.

{1, 2}
{1, 2}

집합은 많은 다른 연산도 지원합니다. 이 중에서도 중요한 연산은 부분집합 확인, 요소의 포함 여부 확인, 집합의 크기 등이 있습니다. 이러한 연산은 파이썬의 집합(set) 객체의 메소드와 연산자를 이용하여 간편하게 수행할 수 있습니다.

집합을 사용하면 고유한 값만을 저장하고, 집합 간의 다양한 연산을 수행할 수 있다는 장점이 있습니다. 파이썬에서 집합을 활용하여 복잡한 데이터 처리를 쉽게 구현할 수 있으므로, 집합(set) 자료형을 잘 활용해보세요!