이 튜토리얼에서는 파이썬(Python)의 set update() 메서드를 활용해 여러 개의 배열을 하나로 합치는 프로그램을 작성해 보겠습니다. 최종 결과물은 각 배열에 포함된 모든 고유한 값(중복 제거)을 담은 1차원 배열이 됩니다.
먼저 예시를 통해 어떤 동작을 하는지 살펴보겠습니다.
입력 예시
arrays = [[1, 2, 3, 4, 5], [6, 7, 8, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
출력 결과
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
세 개의 배열에 중복된 값이 많지만, 최종 출력에는 각 값이 한 번씩만 등장하는 것을 확인할 수 있습니다.
프로그램 작성 순서
다음 단계를 따라 프로그램을 작성합니다.
- 예시와 같이 배열을 초기화합니다.
- 결과를 저장할 빈 set(집합)을 생성합니다.
- 배열 목록을 반복(iteration)하며 순회합니다.
- 각 반복마다 집합의 update() 메서드를 사용해 새로운 고유 요소들을 집합에 추가합니다.
- 최종적으로 set을 list로 변환하여 출력합니다.
전체 코드
# 배열 초기화
arrays = [[1, 2, 3, 4, 5], [6, 7, 8, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
# 빈 집합(set) 생성
result = set()
# 배열 목록 순회
for array in arrays:
# update() 메서드로 집합 갱신
result.update(array)
# 집합을 리스트로 변환 후 출력
print(list(result))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
추가 팁: union() 메서드와의 비교
update()는 기존 집합을 직접 수정(in-place)한다는 점에서 union()과 다릅니다. set.union(other)은 두 집합의 합집합으로 이루어진 새로운 집합을 반환하지만, set.update(other)는 원본 집합 자체에 요소를 추가합니다. 따라서 여러 배열을 반복적으로 합칠 때는 불필요한 객체 생성을 줄여주는 update()가 더 효율적입니다.
마무리
이처럼 set의 update() 메서드를 사용하면 단 몇 줄의 코드로 여러 배열의 합집합을 손쉽게 구할 수 있습니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.