Es scheint, aus irgendeinem Grunde, dass ein dict keinen nicht-doppelten Schlüssel haben kann, die BitArray ist() ex .:Hashing Bitarray? Zählen
data = {}
for _ in xrange(10):
ba = ...generate repeatable bitarrays ...
data[ba] = 1
print ba
{BitArray ('11011'): 1, BitArray (‘ 11011 '): 1, Bitarray (' 11011 '): 1, Bitarray (' 01111 '): 1, Bitarray (' 11110 '): 1, Bitarray (' 11110 '): 1, Bitarray (' 01111 '): 1 , BitArray ('01111'): 1, BitArray ('11110'): 1, BitArray ('11110'): 1}
Sie deutlich, dass die doppelte sehen können, werden als unterschiedliche Schlüssel (zB ersten beiden Elemente gespeichert) Das ist seltsam. Was könnte der Grund sein? Mein Ziel ist es einfach zu zählen, wie oft ein Bitmuster auftaucht, und natürlich sind Dict's perfekt dafür, aber es scheint, dass bitarray() aus irgendeinem Grund für den Hash-Algorithmus undurchsichtig ist. btw .. Ich muss bitarray() verwenden, weil ich 10000 Bits + Muster mache.
Jede andere Idee effizienter Art und Weise des Auftretens von Bit pattens des Zählens ..
Sie nicht sinnvoll eine BitArray können als ein Diktatschlüssel Selbst wenn Sie versuchen, einen TypeError auszulösen, hat die Klasse einen Fehler, bei dem sie den standardmäßigen identitätsbasierten Hash erbt, anstatt PyHash_NotImplemented zu verwenden. – user2357112