Python 按百分比删除 dic 值



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

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 ]

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

谢谢

你可以执行以下操作:

>>> 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% 且大于和等于 5% x您可以执行以下操作:

>>> 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 的值,其中值为 <5%,d2 为>= 给定x的 5%。