본문 바로가기
Computer Science/[20-3,4] Python Basic

[Python] Frozenset이란?

by gojw 2020. 3. 26.

set은 mutable한 자료형이고, Frozenset은 immutable한 버전의 set이다.

Frozenset은 immutable하기 때문에 딕셔너리의 키로 사용할 수 있다.

( immutable한 객체만 hash key로 사용될 수 있다.)

참고: https://jiwonkoh.tistory.com/40

 

[Python] immutable한 객체는 모두 hashable한가?

① Hashing은 hash table이라는 자료구조를 이용해서 요소들을 빠르게 찾을 수 있게 하는 방법이다. Hash table은 모든 요소들에 대해서 key를 가진다. 이를 통해서 요소들을 찾는데 constant time (O(1)) (= 시간..

jiwonkoh.tistory.com

 

# frozenset은 dictionary의 key로 사용 가능
>>> my_list = ['a', 'e', 'o']
>>> my_frozen_set = frozenset(my_list)
>>> my_dict = {my_frozen_set: {1,2,3}}

# set은 dictionary의 key로 사용 불가능 
>>> my_set = {'a', 'e', 'o'}
>>> my_dict = {my_set: {1,2,3}}
# TypeError: unhashable type: 'set'

 

또한 객체가 생성된 이후에 변경이 불가능하다.

# 생성 이후 변경 불가능
>>> my_frozen_set = frozenset('A')
>>> my_frozen_set.add('B')
# AttributeError: 'frozenset' object has no attribute 'add'

댓글