Convert strings to floats in the range [0, 1), using a hash function
1 2 3 4 5 6 7
def hashed_float(s): """returns a float in the range [0, 1) based on a hash of the string. A given string will always return the same value, but different strings will return very different values.""" import md5, struct [number] = struct.unpack("<H", md5.new(s).digest()[:2]) return number / float(0xFFFF)
I use this for creating sample test suites where each test takes a different time to complete, using each test's name as the parameter.