반응형
파이썬으로 알고리즘 프로그래밍을 하다가 우연히 set에 set을 추가할 일이 있었다.
리스트에 리스트가 추가가 가능한 것 처럼, set도 되지 않을까??
생각해서 해보니, 안 되었다. set에는 immutable 즉, 변경불가한 데이터만 원소로 추가가 가능하였다.
따라서 set에는 set, list 등 변화가 가능한 것들이 추가가 안 된다.
정말 안되나 하다가... set을 추가할 방법을 찾았다. 그것은 frozenset.
한 줄 요약: 원소가 되는 set을 frozenset으로 캐스팅하여 사용한다!
더 이상 수정불가능한 immutable 타입으로 캐스팅하면 원소로 넣을 수 있다.
a = set()
# 리스트 추가 안됨.
a.add([1,2,3]) # TypeError: unhashable type: 'list'
# SET 도 추가 안됨.
b = set()
a.add(b) # TypeError: unhashable type: 'set'
# SET을 추가할 수 있는 방법??? FROZENSET!
a.add(frozenset(b)) # ok
'Python' 카테고리의 다른 글
투명 배경 이미지 만들기 (0) | 2023.03.22 |
---|---|
Drawing Plot, 투명 이미지 datauri 생성 (0) | 2023.03.20 |
Jupyter Notebook 소스 복구 (0) | 2020.06.16 |
Docker python venv 패키지 유지 (0) | 2020.06.07 |
딕셔너리에서 키삭제 (0) | 2019.12.07 |