从字典中删除某些值?

时间:2014-11-07 01:57:45

标签: python dictionary

我想用1的值删除字典中的键,但我知道的唯一方法是手动输入要删除的键,效率很低。有什么想法吗?

我有一种感觉我应该使用:

for key,value in mydict.items():

例如,如果我有字典

mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1}

如何删除值为1的键,以便我可以打印一个纯值为> 1的键的字典?

3 个答案:

答案 0 :(得分:2)

您可以使用dict comprehension过滤字典:

>>> mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1}
>>> {k:v for k,v in mydict.items() if v != 1}
{'c': 3, 'b': 2}
>>>

请注意,如果您使用的是Python 2.x,则应使用mydict.iteritems()以避免创建不必要的列表。

答案 1 :(得分:1)

您可以浏览字典中的每个项目(键值对)以检查冲突并在新Dict。(此处为...结果)中添加不包含重复项的值。

mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1}
result = {}

for key,value in mydict.items():
    if value not in result.values():
        result[key] = value

print result

答案 2 :(得分:0)

要创建一个包含值大于1的项目的新词典,请使用下面的dict comprehension

>>> mydict = {'a':1, 'b':2, 'c':3, 'd':1, 'e':1}
>>> {key:value for key,value in mydict.items() if value > 1}
{'c': 3, 'b': 2}