On 28/06/2006 12:15 PM, Girish Sahani wrote: > hi ppl, > Here is a simple function to remove those keys of a dictionary whose > values are less than some specified value. But it isnt working. Please > help. > > def prune(d,cp): > l = [] > for rule,value in d.iteritems(): > #print value > if value >= cp: > l.append(rule) > return l > > >>>> d = {'be=>c': '1.00', 'c=>da': '0.50', 'ea=>b': '0.33', 'be=>d': > '0.50', 'c=>ba': '0.33', 'bd=>a': '1.00', 'a=>cb': '0.33', 'ea=>c': > '0.67', 'a=>cd': '0.50', 'e=>ac': '0.40', 'e=>ab': '0.20', 'c=>bd': > '0.33', 'e=>cb': '0.40', 'ed=>b': '0.25', 'ed=>c': '0.50'} >>>> cp = 0.5 >>>> if prune(d,cp) == d.keys(): > print "code not working :((" > > code not working :(( >
|>> '1.00' >= 0.5 True |>> '0.33' >= 0.5 True Python (correctly) does very little (guesswork-based) implicit type conversion. It looks like the values in your dictionary should stored as floats, not as strings. HTH, John -- http://mail.python.org/mailman/listinfo/python-list