2013-02-28 3 views
-1

나는 위의 같은 사전을 만들 개체를 통해Python 역 매핑 된/사전을 unhashable 형식으로?

d = {1: {"a":1, "b":2}, 2: {"a":1, "b":2}} 

내가 반복 것 같은 사전을 만들었습니다. 가 나는 또한 나는 루프 동안 위의 사전 역을 만들려면

, 그것이 내가 사전은 unhashable 유형 것을 알고 있지만, 동시에 내가 할 수있는 기능을 원하는

d2 = {{"a":1, "b":2}: 1, {"a":1, "b":2}: 2} 

과 같아야합니다

사전을 반복하지 않고 값을 역순으로 검색합니다.

파이썬에서이 작업을 수행 할 수있는 방법이 있습니까?

+1

로 사용할 수 있습니다 b ": 2}', 1 또는 2? dicts를 해시 가능하게 만드는 방법은 [이 질문] (http://stackoverflow.com/questions/1151658/python-hashable-dicts)을 참조하십시오. 반대로는 – khachik

+0

:'d2 = {d [k] : k in d}'. –

+0

@GrijeshChauhan : 고려해야 할 다른 것들이 있습니다. 내 대답보기 – Abhijit

답변

3

나는 또한 내가 루프, 는, 당신은 할 수 없습니다

  1. 처럼 없음을 보여야 동안에 위의 사전 역을 만들려고합니다. 사전에 모든 키는 해시 할 수 있어야하고, 사전 해시 수 없습니다
  2. 키의 수 없습니다 중복 된 항목

파이썬에서이 작업을 수행하는 몇 가지 방법이 있나요?

키가 사전이 아니더라도 다른 데이터 구조로 변환 할 수 있습니다. frozenset of item lists 일 수 있습니까? "1 : 중복 키가 필요한 경우

, MultiMap 1.0.3

frozenset of item lists를 사용하여 구글이 나에게 frozen dict의 구현을 반환, 당신은`{"A "에 대한 매핑이 무엇 MultiMap 1.0.3

+0

frozendict [PEP rejected] (http://www.python.org/dev/peps/pep-0416/) – wim

관련 문제