Python 참조/Python 책정리

Chapter 11 집합 자료형

Snowboarder 2022. 5. 3. 02:17
  • 집합은 많은 데이터를 모아서 처리할 수 있는 것은 리스트와 같지만, 리스트와 달리 중복된 데이터는 한개로 처리하고, 저장된 데이터 간에 순서 개념이 없습니다. 집합을 공부할 때에는 이러한 부분을 이해해야 코딩할 때 어느 경우에 집합 자료형이 필요한 지를 판단할 수 있고, 또 필요할 때 올바르게 사용할 수 있습니다.
  • 집합의 특징 2가지
    1. 중복된 원소가 없다.
    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