2013-06-04 5 views
0

실제 및 최고점은 모두 정수 목록의 목록입니다. 그것은 반환 unhashable 오류를 나열 하시겠습니까?

mapping={} 
for a in actuals: 
    mapping[a]=[v for v in peaks if v[0]==a[0]] 

그러나 오류가

TypeError: unhashable type: 'list' 

무엇 수도 다음과 같이 내 코드에서

, 나는 정수의 목록의 목록에 정수의 목록에서 사전을 만들기 위해 시도 잘못 갔어?

+0

실제 란 무엇입니까? 중첩 목록입니까? –

+2

목록을 사전의 키로 사용할 수 없습니다. –

답변

2

a은 목록 유형 (actuals은 목록 목록 임)입니다. 사전에 키를 할당하려고 시도했습니다. list은 불가능합니다. 해시 가능 (hashable) 인 다른 키를 찾아야합니다. 사전의 키 __hash__()를 구현해야합니다

mapping={} 
for a in actuals: 
    mapping[tuple(a)]=[v for v in peaks if v[0]==a[0]] 
0

a은 변경하지 않을 목록입니다, 당신은 그것의 튜플을 만들 수 있습니다 객체가 변경되면 변경되지 않으며 객체의 내용에 따라 해시 값을 계산해야합니다. 목록의 내용이 변경 될 수 있으므로 __hash__()을 구현하지 않습니다.

0

을 이러한 기능은 아무튼 값을 반환해야합니다

관련 문제