dict duplicity

Randy Bush randy at psg.com
Thu Aug 18 16:59:29 EDT 2005


a dict written as

   pKey = (prefix, pLen, origin)

   val = dict.get(pKey)
   if val == None:
      dict[pKey] = (timeB, timeB)
   else:
      if val[0] > timeB:  val[0] = timeB
      if val[1] < timeB:  val[1] = timeB
      dict[pKey] = val

and read back as

   for pKey, pVal in dict.iteritems():
      print \
         pKey[0], hash(pKey[0]), \
         pKey[1], hash(pKey[1]), \
         pKey[2], hash(pKey[2]), \
         "hash=", hash(pKey), \
         pVal[0], hash(pVal[0]), \
         pVal[1], hash(pVal[1])

when run with | sort, produces

12.0.0.0 -2054516913 8 8 7018 329707286 hash= -604503432 917088000 917088000 917088000 917088000
12.0.0.0 -2054516913 8 8 7018 329707286 hash= -604503432 917088000 917088000 917088000 917088000
12.0.0.0 -2054516913 8 8 7018 329707286 hash= -604503432 917088000 917088000 917088000 917088000
12.0.0.0 -2054516913 8 8 7018 329707286 hash= -604503432 917088000 917088000 917088000 917088000
12.0.0.0 -2054516913 9 -1293912648 7018 329707286 hash= -1578430040 917088000 917088000 917088000 917088000
12.0.0.0 -2054516913 9 -1293912648 7018 329707286 hash= -1578430040 917088000 917088000 917088000 917088000

not that there are two entries with the same hash=

i am utterly confused

randy




More information about the Python-list mailing list