dict Schlüssel müssen hashable sein, die Listen sind nicht becase sie wandelbar sind. Sie können eine Liste ändern, nachdem Sie sie erstellt haben. Stellen Sie sich vor, wie schwierig es wäre, ein Diktat zu behalten, wenn sich die als Schlüssel verwendeten Daten ändern. es macht keinen Sinn. Stellen Sie sich dieses Szenario
und Sie werden sehen, warum Python nicht versucht, Listen als Schlüssel zu unterstützen.
Die offensichtlichste Lösung besteht darin, Tupel anstelle von Listen als Schlüssel zu verwenden.
>>> d = {[1, 2, 3]: 1, [2, 3]: 3}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d = {(1, 2, 3): 1, (2, 3): 3}
>>> d
{(2, 3): 3, (1, 2, 3): 1}
>>> d[2, 3]
3
Dies ist nicht möglich, dict Schlüssel müssen unveränderlich sein. Verwenden Sie stattdessen Tupel. – SilentGhost
Nun, wie würde ich das tun? D ((1,2,3)) = 1 gibt ebenfalls einen Fehler zurück. – Chris
Es sieht so aus, als ob Sie '(...)' verwenden, wenn Sie '[...]' verwenden möchten. 'D [1, 2, 3] = 1 'sollte gut funktionieren. –