2017-08-10 105 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