합집합(Union) 연산은 두 개의 리스트에 담긴 모든 요소를 가져와 하나의 새로운 리스트에 저장하는 작업을 의미합니다.
List1 :: [1, 2, 3] List2 :: [4, 5, 6] List3 :: [1, 2, 3, 4, 5, 6]
알고리즘
Step 1: 두 개의 리스트를 입력받습니다. Step 2: 합집합 연산을 위해 '+' 연산자를 사용해 두 리스트를 연결합니다.
예제 코드
# UNION OPERATION
A = list()
B = list()
n = int(input("Enter the size of the List :: "))
print("Enter the Element of first list::")
for i in range(n):
k = int(input(""))
A.append(k)
print("Enter the Element of second list::")
for i in range(n):
k = int(input(""))
B.append(k)
C = A + B
print("THE FINAL LIST IS ::>", C)실행 결과
Enter the size of the List ::4 Enter the Element of first list:: 23 11 22 33 Enter the Element of second list:: 33 22 67 45 THE FINAL LIST IS ::> [23, 11, 22, 33, 33, 22, 67, 45]
중복 요소 제거하기
위 예제에서 사용한 + 연산자는 단순히 두 리스트를 이어 붙이는 역할만 하기 때문에, 결과 리스트에 중복된 요소(33, 22)가 그대로 남아 있는 것을 확인할 수 있습니다.
수학적인 의미의 합집합처럼 중복 없이 고유한 값만 유지하고 싶다면 set() 함수를 활용하면 됩니다.
# 중복을 제거한 진짜 합집합
C = list(set(A + B))
print("THE FINAL LIST IS ::>", C)
# 출력: [67, 11, 45, 22, 23, 33]단, set()은 순서를 보장하지 않으므로 원래 입력 순서를 유지하고 싶다면 아래와 같이 dict.fromkeys()를 사용하는 것이 좋습니다.
# 순서를 유지하면서 중복 제거
C = list(dict.fromkeys(A + B))
print("THE FINAL LIST IS ::>", C)
# 출력: [23, 11, 22, 33, 67, 45]정리
- 두 리스트를 단순히 연결하려면
+연산자를 사용합니다. - 중복을 제거한 합집합이 필요하면
set(A + B)를 사용합니다. - 입력 순서를 유지한 채 중복을 제거하려면
dict.fromkeys(A + B)를 활용합니다.