728x90


1. set/frozenset
2. 셋 컴프리헨션 예시


1. set/frozenset

- 수학의 '집합'을 표현한 자료형으로 저장 순서를 유지하지 않는다.
- 중복된 값의 저장을 허용하지 않는다.
- iteralbe 객체로 부호 { } 사용
- s = set( ) # 빈 셋 객체 's' 를 생성하는 방법
  # { } 으로 빈 딕셔너리 객체 생성
  # 딕셔너리와 부호가 { } 으로 같지만, key값을 갖지 않기 때문에 파이썬이 set 으로 구분할 수 있다.   
- frozenset은 immutable 객체 (set은 mutable 객체)

set 기본 연산 내용 수학 기호
- 차집합 A - B
& 교집합 A B
| 합집합 A B
^ 대칭 차집합 (A - B) ∪(B - A)
연산 결과 새로운 set이 생성
set 이 호출할 수 있는 메소드
(frozenset은 불가)
내용
add 원소 추가
discard 원소 삭제
update 다른 집합의 원소 전부 추가
intersection_update, &= 다른 집합과 공통으로 있는 원소만 남기기
difference_update, -= 다른 집합이 갖는 원소 모두 삭제
symmetric_difference_update, ^= 공통으로 갖지 않는 것들을 추가하고 나머지는 삭제

 

samp_set = {1, 2, 3}

samp_set.add(6)
print(samp_set)  # {1, 2, 3, 6}

samp_set.discard(6)
print(samp_set)  # {1, 2, 3}

samp_set.update({4, 5, 6})
print(samp_set)  # {1, 2, 3, 4, 5, 6}

samp_set.intersection_update({1, 2, 3})
print(samp_set)  # {1, 2, 3}

samp_set.difference_update({3})
print(samp_set)  # {1, 2}

samp_set.symmetric_difference_update({1, 2, 3})
print(samp_set)  # {3

 


2. set 컴프리헨션 예시

 

# 1-10까지 수 중 홀 수만을 갖고 있는 set을 셋컴프리헨션으로 구현

samp_set = {x for x in range(1, 11) if x % 2}
print(samp_set) # {1, 3, 5, 7, 9}

 


 

728x90

+ Recent posts