티스토리 뷰
set이란?
set을 정의하기
set 자료형은 set()함수를 통해서 정의할 수 있습니다.
s = set("hello") #s는 {'h', 'e', 'l', 'o'} s2 = set([1, 2, 3, 3, 4, 4, 5]) #s2는 {1, 2, 3, 4, 5}
또 다른 방법은 중괄호 안에 값을 기입하면 됩니다.
s = {'h', 'e', 'l','l', 'o'} s2 = {1, 2, 3, 3, 4, 4, 5}
값을 확인해보세요. 중복되는 값들은 모두 사라지고 하나만 남습니다.
값을 추가하는 방법
s.add('f') #s는 이제 {'e', 'o','h', 'f', 'l'} 입니다. s.update('r') #s는 {'e', 'o', 'h', 'f', 'r', 'l'}입니다. s.update('world') #s는 이제 {'e', 'o', 'h', 'f', 'd', 'r', 'l', 'w'} 입니다.
add()의 경우엔 하나의 값만 추가할 수 있지만 update()를 이용하면 여러개도 한번에 추가할 수 있습니다.
값을 제거하는 방법
s.remove('l') #s는 {'e', 'o', 'h', 'f', 'd', 'r', 'w'} 입니다.
소괄호 안에 삭제할 값을 넣으면 해당 값을 set자료형에서 삭제합니다. 위의 소스코드를 실행하면 값에서 "l"이 사라진 것을 확인할 수 있습니다.
값에 접근하는 방법
s_l = list(s) s_l[:] #['e', 'o', 'h', 'f', 'd', 'r', 'w']
list()함수를 통해서 set 자료형을 리스트로 바꿨습니다. 이제는 리스트에서 사용하던 인덱스, 슬라이싱 등을 통해서 값에 접근할 수 있습니다.
set자료형으로 교집합, 합집합, 차집합 구하기
두 개의 원이 있습니다.
교집합은 두개의 원이 겹치는 부분을 말합니다. 합집합은 두 원을 합친 부분, 차집합은 한 원에서 다른원과 겹치는 부분을 뺀 것을 말합니다. 포스팅의 맨 처음 부분에 set자료형은 집합을 구할 때 많이 사용한다고 표현했습니다. set 자료형을 통해서 교집합, 합집합, 차집합을 구해보도록 하겠습니다.
s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8}
s1이라는 집합과 s2라는 집합에서 공통되는 부분(교집합)은 무엇인가요? 네! 4, 5입니다. 이를 코드로 나타내보겠습니다.
s1 & s2 #{4, 5} s1.intersection(s2) #{4, 5}
&와 intersection() 메소드를 통해서 교집합을 구할 수 있습니다.
s1과 s2를 합치면(합집합) 어떻게 될까요? {1, 2, 3, 4, 5, 6, 7, 8} 이라는 집합이 될 것입니다.
s1 | s2 #{1, 2, 3, 4, 5, 6, 7, 8} s1.union(s2) #{1, 2, 3, 4, 5, 6, 7, 8}
|와 union() 메소드를 통해서 합집합을 구할 수 있습니다.
s1에서 s2와 겹치는 부분을 제외하면(차집합) 무엇이 남을까요? {1, 2, 3}이 남습니다.
s1 - s2 #{1, 2, 3} s1.difference(s2) #{1, 2, 3}
-와 difference()메소드를 통해서 차집합을 구할 수 있습니다.
다음 포스팅에서는 조건문, 반복문 등을 배워보도록 하겠습니다.
공감은 제작자에게 큰 힘이 됩니다.
'Backend-dev > python' 카테고리의 다른 글
파이썬의 반복문(for, while) (0) | 2018.04.03 |
---|---|
파이썬의 조건문(if) (1) | 2018.04.02 |
파이썬 자료형 딕셔너리 알아보기 (0) | 2018.03.30 |
파이썬의 자료형 튜플 알아보기 (0) | 2018.03.30 |
파이썬의 자료형 list (0) | 2018.03.27 |