본문 바로가기
파이썬/통계분석

[파이썬 강의] 29. 집합의 원소로 사용가능한 자료구조

by 만다린망고 2021. 10. 7.
반응형

리스트의 Key와 마찬가지로, 집합의 원소도 '불변'인 타입만 사용이 가능합니다. 자료형인 숫자형,문자열,논리형은 모두 집합의 원소로 사용할 수 있습니다. 숫자형과 논리형은 원소를 수정하거나 삭제한다는 개념 자체가 없고, 문자열은 수정삭제가 불가능한 불변형입니다. 예를 들면 아래와 같습니다.

>>> set1={5,3+10j,'hi',True}
>>> set1
{(3+10j), 'hi', 5, True}


반면 모든 자료형을 집합의 원소로 사용가능하지는 않습니다. 리스트, 튜플, 딕셔너리를 가지고 테스트해봅시다.

리스트입니다. 에러가 발생합니다. 

>>> setL={[1,2]}
Traceback (most recent call last):
  File "<pyshell#185>", line 1, in <module>
    setL={[1,2]}
TypeError: unhashable type: 'list'


튜플입니다. 에러가 발생하지 않습니다. 

>>> setT={(1,2)}
>>> setT
{(1, 2)}


딕셔너리입니다. 에러가 발생합니다. 

>>> setD={{1:3}}
Traceback (most recent call last):
  File "<pyshell#188>", line 1, in <module>
    setL={{1:3}}
TypeError: unhashable type: 'dict'


집합의 원소로 튜플은 가능하고 리스트와 딕셔너리는 안됩니다. 튜플만 불변이기 때문입니다. 

반응형

댓글