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
'# Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬 정리(8)_문자열 조합(표현식 기반, 메소드 기반) (0) | 2021.04.26 |
---|---|
[Python] 파이썬 정리(7)_정렬_sort/sorted/enumerate (0) | 2021.04.26 |
[Python] 파이썬 정리(5)_딕셔너리_딕컴프리헨션/defaultdict/setdefault/OrderedDict/zip 함수 (0) | 2021.04.03 |
[Python] 파이썬 정리(4)_튜플_패킹/언패킹/네임드 튜플 (0) | 2021.03.28 |
[Python] 파이썬 정리(3)_제너레이터 함수/표현식 (0) | 2021.03.25 |