본문 바로가기

Language/Python

[Python] 집합

728x90
반응형

집합

- 중괄호 { }로 감싸서 표현

- set() 함수를 사용

s1 = set([1, 2, 3])
s2 = set({1, 2, 3})
s3 = {1, 2, 3}

- set()의 괄호 안에 리스트를 입력하여 만들거나 문자열을 입력하여 만들 수도 있음

s4 = set("Hello")

- 비어 있는 집합 자료형 생성   s = set()

 


집합 자료형의 특징

① 중복을 허용하지 않는다.

s4 = set("Hello")    # s4 = {'e', 'H', 'l', 'o'}

 

② 순서가 없다.  → 인덱싱으로 값을 얻을 수 없다.

set에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환 후 인덱싱

s1 = set([1, 2, 3])
l1 = list(s1)   # l1 = [1, 2, 3]
l1[0]   # 1

 


교집합 구하기 - "&" 기호 또는 intersection() 함수

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
s1 & s2    # {4, 5, 6}
s1.intersection(s2)   # {4, 5, 6}

 

합집합 구하기 - "l" 기호 또는 union() 함수

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
s1 | s2    # {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1.union(s2)   # {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

차집합 구하기 - "-" 기호 또는 difference() 함수

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
s1 - s2     # {1, 2, 3}
s2 - s1     # {8, 9, 7}
s1.difference(s2)    # {1, 2, 3}
s2.difference(s1)    # {8, 9, 7}

 


add() - 값 1개 추가하기

s1 = set([1, 2, 3])
s1.add(4)
s1    # {1, 2, 3, 4}

 

update() - 값 여러 개 추가하기

s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1    # {1, 2, 3, 4, 5, 6}
728x90
반응형