- 집합은 많은 데이터를 모아서 처리할 수 있는 것은 리스트와 같지만, 리스트와 달리 중복된 데이터는 한개로 처리하고, 저장된 데이터 간에 순서 개념이 없습니다. 집합을 공부할 때에는 이러한 부분을 이해해야 코딩할 때 어느 경우에 집합 자료형이 필요한 지를 판단할 수 있고, 또 필요할 때 올바르게 사용할 수 있습니다.
- 집합의 특징 2가지
- 중복된 원소가 없다.
- 순서 개념이 없다.
1. 집합 만들기
- 집합 기호 { } 를 사용
- 집합에는 immutable 자료형만 저장 가능(정수, 실수, 복소수, 부울, 문자열, 튜플만 집합에는 저장할 수 있다.)
- 원소가 집합에 있는지 없는지가 중요하다.
빈 집합 만들기
- S = set()
집합에 넣을 수 있는 자료형
- 집합에는 immutable자료형만 저장할 수 있다.
다른 자료형의 데이터를 집합으로 변환하기
- iterable 데이터를 집합으로 만들 수 있다.
- 집합으로 바뀌었을 때 순서 개념이 없어진다.
두 집합이 같은지 비교하기
- 원소의 개수가 같고, 같은 원소로 구성
2. 집합은 인덱싱, 슬라이싱할 수 없다.
- 순서 개념이 없기 때문에
3. 집합은 mutable 객체입니다.
- 새로운 원소를 추가하거나 삭제할 수 있습니다.
4. for 반복문과 집합
- 어떤 순서로 반복 처리를 할지 알 수가 없다.
5. 집합에 함수 적용하기- len(), man(), min(), sum(), sorted(), reversed()
- sorted() : 집합에 오름차순으로 정렬시켜 리스트로 반환합니다.
- reversed() : 집합에 적용 x
6. 집합에 in, not in, del 연산자 사용하기 (집합에 +, * 연산은 할 수 없습니다.)
- in, not in
- del 연산자 : 집합을 통째로 삭제, 집합 안의 원소를 삭제할 수는 없습니다.
7. 집합의 원소 추가/삭제 메소드
- 집합의 데이터 추가하기 -add()
- 공집합 만들기 - clear()
- 집합 복사하기 - copy()
- 집합에 있는 데이터 삭제하기
- discard(x) : 인수 x를 삭제하고 반환값은 없습니다. 집합에 없는 원소를 x에 넣는다 하더라도 에러x
- pop(): 인수 x, 임의의 원소를 선택해서 집합에서 삭제하고 그 원소를 반환해 줍니다. 빈집합에 하면 Value Error
- remove(x): 원소 x를 삭제하는 메소드, 반환값x , 집합에 없는 원소를 삭제하려고하면 KeyError가 나는데 discard(x)랑 다른 점이다.
8. 집합의 연산 메소드
- 교집합, 합집합, 차집합 등이 있다.
- up-date가 붙는 메소드들은 반환값이 없고
- 메소드를 호출하는 집합 자체가 변하게 되는 메소드 들입니다.
합집합 -union(x), update(x)
- C= A.union(B) # C= A U B
교집합 - intersection(), intersection_updatea()
- C= A.instersection(B)
차집합- difference(), difference_update()/ symmetric_difference() symmetric_difference_update()
- difference(x) : 집합 x의 차집합 C=A.difference(B)
- symmetric_difference(x): 두 집합의 차집합을 합집합으로 합한 것 , (A-B)U(B-A)
부분 집합 확인하기- issubset(), issuperset()
- B.issubset(A) ← B ⊂ A
- A.issubset(B) ← A ⊂ B
서로소 확인하기 - isdisjoint()
- 공통으로 갖는 원소가 없을때를 말한다.
9. 기호로 합집합( | ) , 교집합( & ), 차집합( - ) 구하기
- C= A | B # C= A U B ( OR)
10. 집합 안에 for 반복문 사용하기 (Set Comprehension)
- S={x.upper() for x in L}
11. frozenset 자료형
- 고정된 집합이다.
- 수정하면 안되는 집합을 frozenset으로 만들어 놓다.
- update가 붙지 않은 union, intersection, difference모두 새로운 합집합, 교집합, 차집합을 만들어서 반환하는 메소드들이다.
12. 정리
- 중복 데이터를 저장하지 말아야 하는 경우에 아주 유용하게 사용될 수 있는 자료형이다.
'Python 참조 > Python 책정리' 카테고리의 다른 글
Chapter13 함수 (0) | 2022.05.04 |
---|---|
Chapter12 사전 자료형 (0) | 2022.05.04 |
Chapter10 튜플 (0) | 2022.05.03 |
Chapter9 리스트 자료형[중요] (0) | 2022.05.03 |
Chapter8 for 반복문[중요] (0) | 2022.05.03 |