Python按百分比删除dic值

时间:2014-03-05 12:21:31

标签: python dictionary percentage

你好,我有一个带有这些值的词典

D= {
'a':1000000,
'b':3500,
'c':7000,
'd':867900
'ted':10,
 'tz':3455,
 'tx':7000}

print dict(
    [(k,v) for k,v in d.items() if v<=x ]

我想从dic中删除小于5%的值?我怎样才能做到这一点?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

>>> x  # any x value 
1000
>>> { k: D[k] for k in D if  D[k] > (.95 * x)}
{'a': 1000000, 'c': 7000, 'b': 3500, 'tz': 3455, 'd': 867900, 'tx': 7000}
>>> 

仅考虑超过x

5%的值

它的作用如下:

>>> D
{'a': 98, 'c': 1, 'b': 94, 'd': 9}
>>> x
100
>>> { k: D[k] for k in D if  D[k] > (.95 * x)}
{'a': 98}
>>> 

编辑:要对小于5%且大于等于x的5%进行分组,您可以执行以下操作:

>>> x
100
>>> D
{'a': 98, 'c': 1, 'b': 94, 'e': 99, 'd': 9, 'f': 100}
>>> d1, d2 = {}, {}
>>> for k in D:
...   d = d1 if D[k] < (.95 * x) else d2
...   d[k] = D[k]
... 
>>> d1
{'c': 1, 'b': 94, 'd': 9}
>>> d2
{'a': 98, 'e': 99, 'f': 100}
>>> 

d1是一个新的字典,其中包含来自D的所有键值,其值为&lt; 5%和d2&gt; =给定x的5%。