Erstellen Sie ein Wörterbuch in Python, das durch Listen indiziert wird

7

Ich möchte ein Wörterbuch erstellen, das nach Listen indiziert ist. Zum Beispiel sollte mein Wörterbuch aussehen wie:

%Vor%

Weiß jemand, wie man das macht? Wenn ich nur D([1,2,3]) = 1 eintippe, wird ein Fehler zurückgegeben.

    
Chris 19.04.2010, 21:59
quelle

3 Antworten

17

dict Schlüssel müssen hashable sein, wobei Listen nicht veränderbar sind mutable . 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 vor

%Vor%

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.

%Vor%     
Mike Graham 19.04.2010 22:10
quelle
2

Dictionary-Schlüssel können nur inhaltsfähige Objekte sein. Wenn Sie den Inhalt einer Liste als Schlüssel haben möchten, können Sie die Liste in ein Tupel umwandeln.

%Vor%     
joaquin 19.04.2010 22:11
quelle
1
%Vor%

Wie von anderen erklärt ( Siehe auch hier) , Sie können eine Liste nicht direkt verwenden. Sie können jedoch stattdessen die Zeichenfolgendarstellung verwenden, wenn Sie Ihre Liste wirklich verwenden möchten.

    
Remi 31.08.2011 14:00
quelle

Tags und Links