진박사의 일상

[Python] dictionary의 key로 list는 쓸 수 없다. 본문

프로그래밍

[Python] dictionary의 key로 list는 쓸 수 없다.

진박사. 2021. 10. 8. 18:47

오늘 프로그래밍을 하다가 dictionary key로 list를 쓰려고 했더니

 

TypeError: unhashable type: 'list'

 

라는 에러가 떴다.

찾아보니 알다시피 dictionary는 용이한 검색을 위해 hash를 사용하는 자료구조이고 이를 위해서는 key가 hashable 해야 하는데 list, dictionary 와 같은 가변적인 데이터들은 unhashable하기 때문에 dictionary의 key로 쓸 수 없다는 것.

 

즉, list, dictionary, set 등은 dictionary의 key로 쓸 수 없다.

 

그럼 어떻게 대체할까? -> tuple을 쓰자. tuple은 알다시피 한번 설정한 값을 변경할 수 없는 immutable한 객체이다. 그렇기 때문에 hashable하고 dictionary의 key로 쓸 수 있는 것이다.