Function to prune dictionary keys not working

John Machin sjmachin at lexicon.net
Tue Jun 27 22:30:03 EDT 2006


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



More information about the Python-list mailing list