1

C++ では書きmap<vector<int>,int> mv; ますが、Python では "TypeError: unhashable type: 'list'" というエラーが発生します。おそらく C++ では map は赤黒木ですが、Python では dict はハッシュ テーブルです。しかし、Pythonで上記と同じことを行うにはどうすればよいですか?

4

2 に答える 2

3

リストはハッシュ可能でないため、辞書のキーとして使用できません。

>>> mv = {}
>>> mv[[1,2,3]] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

代わりにタプルを使用してください。

>>> mv[(1,2,3)] = 2
>>> mv
{(1, 2, 3): 2}
于 2013-07-21T05:22:15.537 に答える
1

キーのサイズを変更する必要がない限り、 atupleがおそらく最も効率的な方法です。

mv = {}
mv[(1, 2, 3)] = 456
于 2013-07-21T05:22:19.280 に答える