2014-03-05 39 views
-1

删除DIC值你好,我有这些值Python的按百分比

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%去除值?我怎样才能做到这一点?

感谢

+2

请多解释一下自己。你的意思是5%?你在谈论字典中的数字吗? – ederollora

+0

'd'值 –

+0

后面缺少一个逗号。 。 。什么的5%? D.values()'的最大值? – mshsayem

回答

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%和大于等于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与所有键的新字典,其中值是< 5%和d2与给定的x> = 5%从D值。

+0

是否有任何方法将小于x的5%的值分组并将它们与字典中的其余值一起打印? – user3240059

+0

@ user3240059是的可能我添加了一个例子来创建从给定D. –