-
[Python] 13. 집합(set)Programming/Python 2021. 7. 8. 19:56
[1] 집합의 선언 및 정의
alphabet = {"A", "B", "C", "B"} alphabet2 = set(["A", "B", "C", "B"]) print(alphabet, type(alphabet)) # {'A', 'C', 'B'} <class 'set'> print(alphabet2, type(alphabet2)) # {'A', 'C', 'B'} <class 'set'>
- 집합(set) 내 원소는 중복될 수 없으며, 순서를 보장하지 않는다.
- {}를 통해 집합을 바로 선언 및 정의할 수 있으며, []를 통해 리스트(list)로 정의한 후 type을 바꾸어줄 수도 있다.
- 순서를 보장하지 않기에, index를 통한 접근이 불가하다.
[2] 집합에서의 추가 및 삭제
alphabet1 = {"A", "C", "D"} print(alphabet1) # {'A', 'D', 'C'} alphabet2 = {"B", "D", "E"} print(alphabet2) # {'E', 'D', 'B'} alphabet1.add("F") print(alphabet1) # {'A', 'F', 'D', 'C'} alphabet1.remove("A") print(alphabet1) # {'D', 'C', 'F'}
- 추가는 add를 사용한다. 위 예시코드의 결과를 보면 알 수 있듯이, 집합은 순서를 보장하지 않기에 F는 아무 자리에 추가된다.
- 삭제는 remove를 사용한다. list나 dictionary 등에서는 index번호 또는 key를 통해 삭제했던 것이 기억이 날 것이다. 하지만, 앞서 설명했듯이 집합은 순서를 보장하지 않기에 index번호 등이 무의미하다. 따라서, 직접 value를 입력하여 삭제한다.
[3] 집합의 사용(교집합, 합집합, 차집합)
alphabet1 = {"A", "C", "D"} print(alphabet1) # {'A', 'D', 'C'} alphabet2 = {"B", "D", "E"} print(alphabet2) # {'E', 'D', 'B'} # 교집합 print(alphabet1 & alphabet2) # {'D'} print(alphabet1.intersection(alphabet2)) # {'D'} # 합집함 print(alphabet1 | alphabet2) # {'A', 'B', 'E', 'D', 'C'} print(alphabet1.union(alphabet2)) # {'A', 'B', 'E', 'D', 'C'} # 차집합 print(alphabet1 - alphabet2) # {'A', 'C'} print(alphabet1.difference(alphabet2)) # {'A', 'C'}
- 교집합 : & 또는 intersection 사용
- 합집합 : | 또는 union 사용
- 차집합 : - 또는 difference 사용
*본 글은 코딩 유튜버 '나도코딩'님의 무료강의를 바탕으로 내용을 정리 및 추가한 글입니다.
https://www.youtube.com/watch?v=kWiCuklohdY&t=5934s
'Programming > Python' 카테고리의 다른 글
[Python] 15. for문 (0) 2021.07.11 [Python] 14. 조건문 (if문) (0) 2021.07.11 [Python] 12. 튜플(tuple) (0) 2021.07.08 [Python] 11. 사전(Dictionary) (0) 2021.07.08 [Python] 10. 리스트(List) (0) 2021.07.08