Il semble, pour une raison que dict ne peut pas avoir une clé non double qui est BitArray() ex .:Bitarray de hachage? Compter
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}
Vous pouvez clairement voir que deux exemplaires sont stockés sous forme de différentes clés (fe deux premiers éléments) !! ce qui est bizarre. Quelle pourrait être la raison. Mon but est simplement de compter le nombre de fois qu'un modèle binaire apparaît, et bien sûr que Dict est parfait pour cela, mais il semble que bitarray() soit opaque pour l'algorithme de hachage. btw .. je dois utiliser bitarray(), car je fais 10000 bits + motifs.
Toute autre idée de moyen efficace de compter l'apparition de socques bits ..
Vous ne pouvez pas utiliser de manière significative une BitArray comme une clé dict. Même essayer devrait déclencher une erreur TypeError, mais la classe a un bogue où elle hérite du hachage basé sur l'identité par défaut au lieu d'utiliser PyHash_NotImplemented. – user2357112