생활속 보물창고 : 일상 속 유용한 정보를 공유드립니다.

안녕하세요 엘빈입니다. 이전 포스팅에서는 딕셔너리 자료형에 대해서 알아보았습니다. 생각해보면 파이썬에 정말 많은 자료형이 존재하는 것 같아요. 그동안 개발자가 겪는 불편함과 요구를 수용하여 여러가지 문법들을 만들어낸 것이죠. 이번 포스팅에서는 집합 자료형에 대해서 알아보겠습니다.

 

 

 

 

 

 

 

 

집합 자료형 역시 프로그래머의 요구로 만들어진 자료형으로 파이썬 2.3부터 지원하고 있는데요. 자료형 이름 그대로 집합과 관련된 연산을 쉽게 처리하기 위해 구현된 자료형입니다.

 

 

 

 집합 자료형 구조

 

집합 자료형 변수 선언과 할당은 다음과 같습니다.

 

se = set("kitty")

print(se) # set(['i', 'y', 'k', 't'])

 

Set 함수를 통해 선언하는데요. 인수로는 집합으로 구성할 수 있는 변수가 와야 합니다. (리스트, 문자열 등)

 

 

 

집합 자료형은 두가지 특성을 가지고 있습니다.

 

첫번쨰로 중복을 허용하지 않습니다. 예를 들어 "kitty"라는 문자열을 집합 자료형 변수에 넣으면 중복된 t 변수가 한번만 저장되어 총 4개의 원자값을 가집니다.

 

두번째로 순서를 가지지 않습니다. 위의 코드와 같이 알파벳 순서대로 저장된 것을 볼 수 있습니다. 순서대로 저장되지 않기 때문에 원자값에 따른 인덱스 값이 존재하지 않습니다. 따라서 인덱싱, 슬라이싱을 활용할 수 없습니다.

 

 

그렇다면 집합 자료형은 대체 언제 사용할까요?

 

 

 

 

 

 

 

 

 

 

 집합 자료형 활용하기

 

 

(1) 교집합

se1 = set([1,2,3,4])
se2 = set([3,4,5,6])

print(se1 & se2) # set([3, 4])

 

교집합은 두 개의 집합 자료형 변수에서 공통된 원자 값을 찾습니다. 두 변수 사이에 기호 '&'를 작성하면 됩니다. 위 코드와 같이 공통된 원자값 3,4 가 표시되는 것을 알 수 있습니다.

 

 

 

(2) 합집합

 

se1 = set([1,2,3,4])
se2 = set([3,4,5,6])

print(se1 | se2) # set([1, 2, 3, 4, 5, 6])

 

합집합은 두 개의 집합 자료형 변수들의 원자값을 합칩니다. 중복된 원자값은 한번만 표시됩니다. 두 변수 사이에 기호 '|'를 작성하시면 됩니다.

 

 

 

 

 

(3) 차집합

 

se1 = set([1,2,3,4])
se2 = set([3,4,5,6])

print(se1 - se2) # set([1, 2])

 

차집합은 한 집합 자료형 변수에서 다른 집합 자료형 변수와 공통된 원소를 제거합니다.  원래 변수에서 교집합을 없앤다고 생각하시면 됩니다. 두 변수 사이에 기호 '-'를 작성합니다.

 

 

 

 

(4) 값 1개 추가

 

se1 = set([1,2,3,4])
se1.add(5)

print(se1) # set([1, 2, 3, 4, 5])

 

집합 자료형 변수 내에 원자값 하나를 추가합니다. 코드와 같이 Add 함수를 사용하시면 됩니다.

 

 

 

 

 

 

 

 

 

(5) 값 여러 개 추가

 

se1 = set([1,2,3,4])
se1.update([5,6,7])

print(se1) # set([1, 2, 3, 4, 5, 6, 7])

 

여러 개의 값을 추가할 때는 update 함수를 사용합니다.

 

 

 

 

 

(6)원자값 제거

 

se1 = set([1,2,3,4])
se1.remove(1)

print(se1) # set([2, 3, 4])

 

특정 원자값을 제거하고 싶다면 remove 함수를 사용합니다.

 

 

 


마무리

 

지금까지 집합 자료형에 대해서 다루었는데요. 자주 사용되지는 않지만 집합과 관련된 기능을 활용하실때 사용하시면 좋을 것 같습니다. 교집합, 합집합 부분은 정말 편리한 기능이라고 생각되네요.

 

 

포스팅 읽어주셔서 감사합니다.

 

 

이전글

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band