2017-08-10 97 views
0

所以我有一本字典,它看起來像以下:的Python從字典中刪除一個鍵與多個鍵

dictionary={('a','b'):1,('c','d'):2} 

正如你可以看到有一個值的多個鍵。我想要做的是基本上刪除(刪除)其中一個鍵。例如,我想說的是,所有的值將不需要的第一個鍵了,並轉換上述字典以下:

dictionary={'b':1,'d':2} 

什麼是這樣做的最安全的方法?

感謝

+0

是否只發生一次,在每個關鍵的第二部件? –

+1

每個值都有一個**鍵。 –

回答

8

您可以使用字典解析下降在每個元組的第一項:

dictionary = {k: v for (_, k), v in dictionary.items()} 
1

我不喜歡假設鍵的結構。爲了使絕對防彈

from collections import Iterable 
d = { 
    k[-1] if isinstance(k, Iterable) else k: v 
    for k, v in dictionary.iteritems() 
} 
1

如果你有沒有列表或元組鍵,你會想用這個:

d ={('a','b'):1,('c','d'):2} 

new_d = {a[-1] if isinstance(a, tuple) or isinstance(a, list) else a:b for a, b in d.items()} 
+0

你似乎有三元混合。它應該立即跟隨關鍵而不是價值。看看'd = {'x':1,'y':2}會發生什麼?' –

+0

@MosesKoledoye謝謝您指出。請參閱我最近的編輯。 – Ajax1234