Quant/Python

집합 자료형

Quant Tree 2021. 1. 4. 20:08

>>> s1 = set([1, 2, 3])

>>> s1

{1, 2, 3}

 

>>> s2 = set("Hello")

>>> s2

{'e', 'H'. 'l', 'o'}

 

집합 자료형은 중복을 허용하지 않고, 순서가 없다

 

리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만, set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수가 없다. 딕셔너리 역시 순서가 없는 자료형이라 인덱싱을 지원하지 않음

 

만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한후 해야함

 

>>> l1 = list(s1)

>>> l1[0]

1

 

교집합, 합집합, 차집합 구하기

 

>>> s1 = set([1, 2, 3, 4, 5])

>>> s2 = set([4, 5, 6, 7, 8])

 

>>> s1 & s2

{4, 5}

>>> s1.intersection(s2)

{4, 5}

 

>>> s1 | s2

{1, 2, 3, 4, 5, 6, 7, 8}

>>> s1.union(s2)

{1, 2, 3, 4, 5, 6, 7, 8}

 

>>> s1 - s2

{1, 2, 3}

>>> s1.difference(s2)

{1, 2, 3}

 

값 1개 추가하기

 

>>> s1.add(9)

>>> s1

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

 

값 여러개 추가하기

 

>>> s1.update([10, 11, 12])

>>> s1

{1, 2, 3, 4, 5, 9, 10, 11, 12}

 

특정 값 제거하기

 

>>> s1.remove([10, 11])

>>> s1

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