Python에서 딕셔러니의 키로 리스트를 사용할 수 없나요?

안녕하세요. Python에서 딕셔너리를 사용할 때 키로 리스트를 지정하려고 했는데 오류가 발생했습니다. 숫자나 문자열은 키로 사용할 수 있었는데, 리스트는 왜 안 되는 걸까요?

2개의 답변이 있어요!

  • Python에서 딕셔너리의 키로 리스트를 사용할 수 없는 이유는

    리스트가 변경 가능한 객체이기 때문이에요.

    딕셔너리의 키는 해시값을 사용해서 저장되는데,

    변경 가능한 객체는 해시값이 변할 수 있어요.

    그래서 숫자나 문자열처럼 불변 객체만 키로 사용할 수 있어요.

    리스트 대신 튜플을 사용하면 괜찮답니다.

    튜플은 불변이기 때문에 키로 사용할 수 있어요.

  • Python에서 딕셔너리의 키는 해시 가능해야 하는데, 리스트는 변경 가능한 자료형이라서 해시가 불가능해요.

    그래서 리스트를 키로 사용할 수 없답니다.

    대신 튜플 같은 불변 자료형은 키로 사용할 수 있어요.

    그래서 만약 리스트를 키로 사용하고 싶다면 리스트의 내용을 튜플로 변환해서 사용하면 됩니다.

    예를 들어, [1, 2]라는 리스트를 (1, 2)라는 튜플로 바꾸면 키로 쓸 수 있어요.

    이런 규칙은 Python에서 자료형을 사용할 때 항상 기억해두면 좋을 것 같아요.