Python 通过匹配值删除键值对

Python 通过匹配值删除键值对,python,dictionary,key-value,Python,Dictionary,Key Value,我正在字典中搜索句点“.”,并尝试删除找到的键/值对 if "." in dict.values(): #delete key, value pair from the dictionary 我相信这很简单,但我似乎找不到解释。 感谢您的帮助。使用字典理解创建一个新字典,而不包含那些不需要的值。下面是一个如何执行此操作的示例: >>> old_dict = {'one': '.', 'two': 2, 'three':3, 'four':'.'} >>&g

我正在字典中搜索句点“.”,并尝试删除找到的键/值对

if "." in dict.values():
    #delete key, value pair from the dictionary
我相信这很简单,但我似乎找不到解释。
感谢您的帮助。

使用字典理解创建一个新字典,而不包含那些不需要的值。下面是一个如何执行此操作的示例:

>>> old_dict = {'one': '.', 'two': 2, 'three':3, 'four':'.'}
>>> new_dict = {k:v for k,v in old_dict.iteritems() if not v == '.'}
>>> new_dict
 {'three': 3, 'two': 2}

使用
iteritems
而不是
items
可以避免创建中间列表并提高性能。

如果您不想复制词典(例如,如果词典很大,或者您在其他地方有引用),则应这样做:

ks = [k for k in d if d[k]=='.']
for k in ks:
    d.pop(k)

如上所示,创建要提前删除的密钥列表。您不想在迭代字典时修改它。

{key:value for key,value in dict_obj.items(),如果“.”不在value}