Warum sind Slice-Objekte in Python nicht hashbar?

8

Warum sind Slice-Objekte in Python nicht hashbar:

%Vor%

Sie scheinen unveränderlich zu sein:

%Vor%

Context, ich möchte ein Wörterbuch erstellen, das Python-Ints abbildet oder Objekte auf einige Werte schneidet, etwa so:

%Vor%

Als Workaround brauche ich spezielle Case Slices:

%Vor%

Das ist keine große Sache, ich würde nur gerne wissen, ob es Gründe dafür gibt.

    
Bi Rico 01.05.2015, 02:23
quelle

2 Antworten

9

Aus dem Python-Fehler-Tracker :

  

Patch # 408326 wurde entwickelt, um die Zuordnung zu d [:] zu einem Fehler zu machen   d ist ein Wörterbuch. Siehe Diskussion ab    Ссылка .

Slices wurden speziell nicht hashbar gemacht, sodass Sie einen Fehler erhalten, wenn Sie versuchen, Slice-Assigns für ein Diktat zu verwenden.

Leider sieht es so aus, als wären Mailinglisten-Archivlinks nicht stabil. Der Link im Zitat ist tot und der alternative Link, den ich vorgeschlagen habe , ist gestorben auch. Das Beste, auf das ich Sie hinweisen kann, ist der Archivlink für den gesamten Monat der Nachrichten ; Sie können Ctrl-F für { verwenden, um die relevanten (und einige falsche Positive) zu finden.

    
user2357112 01.05.2015, 02:32
quelle
4

Als Workaround können Sie die Methode __reduce__() verwenden, die das Beizen von Slice-Objekten unterstützt:

%Vor%

Während der Slice nicht hashbar ist, lautet die Darstellung:

%Vor%

Und Sie können das Stück daraus leicht rekonstituieren:

%Vor%     
dawg 01.05.2015 02:36
quelle

Tags und Links