0

actuals と peaks はどちらも整数のリストのリストです。

私のコードでは、次のように、整数のリストから整数のリストのリストへの辞書を作成しようとしました。

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

ただし、エラーが返されました

TypeError: unhashable type: 'list'

何がうまくいかなかったのでしょうか?

4

3 に答える 3

2

aリスト型のように見えます(actualsリストのリストです)。辞書のキーを に割り当てようとしていますが、listこれは不可能です。ハッシュ可能な他のキーを考え出す必要があります。

于 2013-06-04T15:30:31.227 に答える
0

それぞれaが変更しないリストである場合は、それからタプルを作成できます。

mapping={}
for a in actuals:
    mapping[tuple(a)]=[v for v in peaks if v[0]==a[0]]
于 2013-06-04T15:33:26.433 に答える
0

ディクショナリのキーを実装する必要があり__hash__()、これらの関数は、オブジェクトが変更されても変更されない値を返す必要があり、一方で、オブジェクトの内容に応じてハッシュ値を計算する必要があります。リストの内容は変更される可能性があるため、実装されていません__hash__()

于 2013-06-04T15:34:17.620 に答える