2020. 6. 13. 23:41ㆍInvestment Story/금융공학 - 파이썬
계속해서 자료형에 대해서 공부하고 있습니다.
오늘은 집합(set) 자료형에 대해 알아보는 시간을 갖겠습니다.
set 자료형은 여러 값을 순서 없이 모아둔 자료형입니다.
set 생성하기
집합은 dict 자료형과 마찬가지로
중괄호 { } 를 이용해서 만듭니다.
위의 예시를 보시면
중괄호를 이용해 a라는 집합 자료형을 생성한 걸 확인할 수 있습니다.
특이한 점은 데이터가 중복되더라도 한 개의 데이터만 저장하고,
순서를 신경쓰지 않고 데이터를 저장하는 사실을 알 수 있습니다.
다만 그냥
a = { }
를 할시 빈 set 자료형이 생성되는 것이 아니라
빈 dict 자료형이 생성되니 주의하시기 바랍니다.
빈 set 자료형을 생성하기 위해서는
set() 함수를 이용하셔야 합니다.
아래 예시로 확인하시죠.
또 하나 알아야 할 점은,
set 내부에는 리스트나, 또 다른 set이 들어갈 수 없습니다.
정수, 실수, 복소수, 부울, 문자열, 튜플 만이 set에 저장될 수 있습니다.
set의 연산
set은 집합 자료형이라고 이야기했죠.
우리가 초등학교 시절 배운 집합과 똑같이 생각하시면 됩니다.
연산도 마찬가지로 교집합, 합집합, 차집합이 있습니다.
하나씩 확인하겠습니다.
먼저 교집합입니다.
교집합은 intersection 메소드나 & 연산자를 활용하여 연산할 수 있습니다.
예시를 보시죠
위처럼 할 수 있습니다.
세 개도 가능합니다.
다음은 합집합입니다.
합집합은 union 메소드나 | 연산자를 사용해서 연산할 수 있습니다.
위의 예시는 합집합을 나타냅니다.
마지막으로 차집합입니다.
차집합은 difference 메소드나 - 연산자를 활용해서 연산 가능합니다.
차집합 예시는 아래와 같습니다.
이렇게 교집합, 합집합, 차집합 연산에 대해서 알아보았습니다.
set 메소드 함수
set은 위의 설명드린 연산을 제외하고도
메소드 함수들이 더 있습니다.
대표적인 메소드 함수들을 소개하겠습니다.
먼저 add입니다.
말 그대로 데이터를 set에 추가하는 함수입니다.
위처럼 a라는 set에 7이라는 데이터가 추가된 걸 확인할 수 있습니다.
다음은 remove입니다.
말 그대로 데이터를 제거하는 함수입니다.
아까 추가하였던 7이 제거된 것을 확인할 수 있습니다.
remove를 하실 때, 없는 데이터를 remove 하면 에러가 발생합니다.
이미 제거된 7을 또 제거하려니 오류가 발생한 것을 확인할 수 있습니다.
그러나 discard는 데이터가 있으면 삭제하는 함수이기에
안에 데이터가 없더라도 에러가 발생하지 않습니다.
위 예시처럼, 처음 없는 7을 discard 시켰지만
에러가 발생하지 않고, 기존 a라는 set의 데이터가 변하진 않았죠.
그리고 5를 discard 시키니 a에서 5가 제거됨을 확인할 수 있습니다.
여러 값을 추가하고 싶다면
update 메소드나 |= 연산자를 이용할 수 있습니다.
이는 연산되는 두 집합의 합집합을 기존 set에 저장하는 건데요.
위 예시에서 a set은 |= 연산자를 이용하였고
b set은 메소드를 이용하였는데
둘 다 합집합 결과를 기존 set에 저장하는 결과를 얻었습니다.
그럼 교집합 update와, 차집합 update도 있겠죠
각각 intersection_update 또는 &= 연산자
difference_update 또는 -= 연산자를 이용할 수 있습니다.
예시를 들어 확인하겠습니다.
위 예시에서 a는 연산자를 이용한 교집합 업데이트를 하였고,
b는 메소드 함수를 이용한 차집합 업데이트를 하였습니다.
이상 오늘은 set 자료형에 대해 공부하였습니다.
감사합니다.
'Investment Story > 금융공학 - 파이썬' 카테고리의 다른 글
16. 함수 그리고 모듈 (2) | 2020.06.18 |
---|---|
15. 함수 정의하기 (0) | 2020.06.15 |
13. 딕셔너리 알아보기 (0) | 2020.06.13 |
12. 튜플 알아보기 (1) | 2020.06.10 |
11. 리스트 알아보기 (0) | 2020.06.09 |