我有一个 python 字典,由元组组成的字典键,

像这样 :

{
 (u'A_String_0', u'A_String_1', u'B_String_3', u'Remove_Me'): 300,
 (u'A_String_0', u'B_String_4'): 301,
 (u'A_String_0', u'A_String_1', u'B_String_3', u'Remove_Key'): 301,
}

当只有部分 tupple 出现在 key 中时,我想从字典中删除所有键:

例如 'Remove_'
在这种情况下,必须弹出两个键:一个包含 u'Remove_Me',另一个包含 u'Remove_Key'
最后,字典将如下所示:
{
  (u'A_String_0', u'B_String_4'): 301
}

非常感谢 !

最佳答案

单程:

    >>> d = {
     (u'A_String_0', u'A_String_1', u'B_String_3', u'Remove_Me'): 300,
     (u'A_String_0', u'B_String_4'): 301,
     (u'A_String_0', u'A_String_1', u'B_String_3', u'Remove_Key'): 301,
    }
    >>>
    >>>
    >>> d_out = {k:v for k,v in d.items() if not any(x.startswith('Remove_') for x in k)}
    >>> d_out
{(u'A_String_0', u'B_String_4'): 301}

编辑:如果您想检查 Remove_ 是否是元组键的任何项目的一部分,那么您最好使用:
>>> d_out = {k:v for k,v in d.items() if not any('Remove_' in x for x in k)}

关于 python 2.7 : remove a key from a dictionary by part of key,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34415897/

10-13 02:08
查看更多