2012-03-15 4 views

답변

24

몇 가지 이유 : 목록과 같은

  • 변경 가능한 객체 사전 키를 사용하거나 hashable이 아니기 때문에, 파이썬에서 회원을 설정할 수 없습니다. 내용에 따라 목록에 __hash__ 메서드가 제공되면 콘텐츠가 변경되면 반환되는 값이 변경되어 해시 값 계약에 위배됩니다.
  • 파이썬에 변경 가능한 시퀀스 만있는 경우 시퀀스를 허용하는 생성자는 시퀀스를 다른 코드에서 수정할 수 없도록하기 위해 종종 복사해야합니다. 생성자는 튜플을 수락하여 방어 복사를 피할 수 있습니다. 더 나은 방법은 시퀀스 인수를 tuple 메서드를 통해 전달할 수 있으며이 메서드는 필요한 경우에만 복사합니다.
+0

해시 값이 변경 될 수 있습니까? 응? – wim

+2

목록 변경시 wim -> hash vaules가 변경됩니다. 목록에 다른 곳의 ref가 있으면 목록이 바뀔 수 있습니다. –

+0

목록은 수화 할 수 없습니다. – wim

1

그렇지 않으면 변경할 수없는 시퀀스 유형이 없으므로! mutable tuple을 원한다면리스트를 사용하면된다.

적절한 경우 다양한 유형의 퍼큰을 사용하며, 변경 가능한 경우 튜플 키가있는 dict을 쉽게 사용할 수 없습니다.