FrozenSet을 이용할 일이 있었다.
사실 set을 쓰고 안건드리면 되지만 자바의 static final이 python에는 없을까?
하고 찾다가 알게되어서 한번 써보면서, 세트에 관해서도 정리했다.
set_t1 = {}
set_t2 = set([iterable])
temp = {"a", "b", "c"}
a = set('apple')
# {'e', 'l', 'a', 'p'}
집합 연순 후 할당 연산자 = 를 사용하여 결과를 변수에 할당한다.
| 연산식 | 메서드 |
|---|---|
| 세트1 | = 세트2 |
| 세트1 \&= 세트2 | 세트1.intersection_update(세트2) |
| 세트1 -= 세트2 | 세트1.difference_update(세트2) |
| 세트1 \^= 세트2 | 세트1.symmetric_difference_update(세트2) |
연산 결과는 Boolean으로 나온다.
| 연산식 | 메서드 | 설명 |
|---|---|---|
| 현재세트 ≤ 다른세트 | 현재세트.issubset(다른세트) | 현재 세트가 다른 세트의 부분 집합인지 |
| 현재세트 < 다른세트 | (메서드 없음) | 진부분집합인지 확인 |
| 현재세트 ≥ 다른세트 | 현재세트.issuperset(다른세트) | 다른 세트의 상위 집합인지 확인 |
| 현재세트 > 다른세트 | (메서드 없음) | 현재 세트가 다른 세트의 진상위집합인지 확인 |
| 현재세트 == 다른세트 | (메서드 없음) | 같으면 True, 다르면 False, 순서가 없으므로 요소만 같으면 참 |
| 현재세트 != 다른세트 | (메서드 없음) | 같으면 True, 다르면 False, 순서가 없으므로 요소만 같으면 참 |
| (연산식 없음) | 현재세트.isdisjoint(다른 세트) | 현재 세트가 다른 세트와 겹치지 않는지 확인 |
my_set = {1, 2, 3, 4, 5}
my_frozenset = frozenset([1, 2, 3, 4, 5]) # 프로즌세트 생성
프로즌세트 사용 예
>>> frozenset({frozenset({1, 2}), frozenset({3, 4})})
frozenset({frozenset({1, 2}), frozenset({3, 4})})