所以我有一本字典,它看起来像以下:的Python从字典中删除一个键与多个键
dictionary={('a','b'):1,('c','d'):2}
正如你可以看到有一个值的多个键。我想要做的是基本上删除(删除)其中一个键。例如,我想说的是,所有的值将不需要的第一个键了,并转换上述字典以下:
dictionary={'b':1,'d':2}
什么是这样做的最安全的方法?
感谢
所以我有一本字典,它看起来像以下:的Python从字典中删除一个键与多个键
dictionary={('a','b'):1,('c','d'):2}
正如你可以看到有一个值的多个键。我想要做的是基本上删除(删除)其中一个键。例如,我想说的是,所有的值将不需要的第一个键了,并转换上述字典以下:
dictionary={'b':1,'d':2}
什么是这样做的最安全的方法?
感谢
您可以使用字典解析下降在每个元组的第一项:
dictionary = {k: v for (_, k), v in dictionary.items()}
我不喜欢假设键的结构。为了使绝对防弹
from collections import Iterable
d = {
k[-1] if isinstance(k, Iterable) else k: v
for k, v in dictionary.iteritems()
}
如果你有没有列表或元组键,你会想用这个:
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()}
你似乎有三元混合。它应该立即跟随关键而不是价值。看看'd = {'x':1,'y':2}会发生什么?' –
@MosesKoledoye谢谢您指出。请参阅我最近的编辑。 – Ajax1234
是否只发生一次,在每个关键的第二部件? –
每个值都有一个**键。 –