2014-11-07 149 views
0

我想刪除我的字典中的值爲1的密鑰,但我知道的唯一方法是手動輸入要刪除的密鑰,效率低下。有任何想法嗎?從字典中刪除某些值?

我有一種感覺,我應該使用:

for key,value in mydict.items(): 

舉例來說,如果我有字典

mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1} 

我會怎麼刪除鍵與1的值,這樣我可以打印一個純粹由值爲> 1的鍵的字典?

回答

2

可以使用dict comprehension過濾詞典:

>>> mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1} 
>>> {k:v for k,v in mydict.items() if v != 1} 
{'c': 3, 'b': 2} 
>>> 

請注意,您應該使用mydict.iteritems()如果你對Python的2.X,以避免產生不必要的名單。

+0

謝謝! @iCodez – eskoka 2014-11-07 02:19:00

0

要創建一個新值大於1的項目的字典,請使用dict comprehension,如下所示。

>>> mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1} 
>>> {key:value for key,value in mydict.items() if value > 1} 
{'c': 3, 'b': 2} 
1

你可以去儘管每個在字典中的項目(鍵值對)的檢查衝突,並在新詞典增加價值。(在這裏..結果)是不包含重複。

mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1} 
result = {} 

for key,value in mydict.items(): 
    if value not in result.values(): 
     result[key] = value 

print result