通过匹配值python删除键值对

时间:2013-10-14 13:53:57

标签: python dictionary key-value

我正在寻找“。”在字典中并尝试删除键/值对,如果我找到它

if "." in dict.values():
    #delete key, value pair from the dictionary

我确信这很简单,但我似乎无法找到解释。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

使用字典理解创建一个没有这些不需要的值的新字典。以下是如何执行此操作的示例:

>>> 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可以避免创建中间列表并提高性能。

答案 1 :(得分:1)

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

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

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