On Sep 5, 9:38 am, Helmut Jarausch <[EMAIL PROTECTED]> wrote: > Hi, > > I need to hash arrays of integers (from the hash module). > > So, I have to derive from array and supply a __hash__ method.
I don't believe you need to derive from an array. Here are two simple and well known hash functions you can use readily: def djbhash(a): """Hash function from D J Bernstein""" h = 5381L for i in a: t = (h * 33) & 0xffffffffL h = t ^ i return h def fnvhash(a): """Fowler, Noll, Vo Hash function""" h = 2166136261 for i in a: t = (h * 16777619) & 0xffffffffL h = t ^ i return h if __name__ == '__main__': arr = [1001, 3001, 5001, 9001, 10011, 10013, 10015, 10017, 10019, 20011, 23001] print djbhash(arr) print fnvhash(arr) And finally, here is an excellent page that explains hash functions: http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx Here is Noll's page where he explains the FNV Hash: http://www.isthe.com/chongo/tech/comp/fnv/ Hope this helps, -- Sudhi -- http://mail.python.org/mailman/listinfo/python-list