根据值从字典中删除条目


问题内容

我有一本包含字符-整数键-值对的字典。我想删除所有值为0的键值对。

例如:

>>> hand
{'a': 0, 'i': 0, 'm': 1, 'l': 1, 'q': 0, 'u': 0}

我想将同一本字典简化为:

>>> hand
{'m': 1, 'l': 1}

有一个简单的方法吗?


问题答案:

您可以使用dict理解

>>> { k:v for k, v in hand.items() if v }
{'m': 1, 'l': 1}

或者,在2.7之前的Python中,dict构造函数与生成器表达式结合使用:

>>> dict((k, v) for k, v in hand.iteritems() if v)
{'m': 1, 'l': 1}