set은 mutable한 자료형이고, Frozenset은 immutable한 버전의 set이다.
Frozenset은 immutable하기 때문에 딕셔너리의 키로 사용할 수 있다.
( immutable한 객체만 hash key로 사용될 수 있다.)
참고: https://jiwonkoh.tistory.com/40
# 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'
'Computer Science > [20-3,4] Python Basic' 카테고리의 다른 글
[Python] 클래스 상속 (Class Inheritance)란? (0) | 2020.04.01 |
---|---|
[Python] isinstance() 함수와 .isdigit()의 차이 (0) | 2020.03.27 |
[Python] immutable한 객체는 모두 hashable한가? (0) | 2020.03.26 |
[Python] set 자료형에 string을 알파벳 분리 안되게 넣기 (0) | 2020.03.20 |
[Python] output formatting에 f-string 사용하기 (0) | 2020.03.19 |
댓글