我有一个带有字符整数键值对的字典。我想删除所有值为 0 的键值对。
例如:
>>> hand
{'a': 0, 'i': 0, 'm': 1, 'l': 1, 'q': 0, 'u': 0}
我想将同一个字典简化为:
>>> hand
{'m': 1, 'l': 1}
有没有简单的方法可以做到这一点?
我有一个带有字符整数键值对的字典。我想删除所有值为 0 的键值对。
例如:
>>> hand
{'a': 0, 'i': 0, 'm': 1, 'l': 1, 'q': 0, 'u': 0}
我想将同一个字典简化为:
>>> hand
{'m': 1, 'l': 1}
有没有简单的方法可以做到这一点?
hand = {k: v for k, v in hand.iteritems() if v != 0}
对于 Python 2.7 之前的版本:
hand = dict((k, v) for k, v in hand.iteritems() if v != 0)
在这两种情况下,您都会过滤掉值为 的键0
,并分配hand
给新字典。
如果您不想创建新字典,可以使用以下命令:
>>> hand = {'a': 0, 'i': 0, 'm': 1, 'l': 1, 'q': 0, 'u': 0}
>>> for key in list(hand.keys()): ## creates a list of all keys
... if hand[key] == 0:
... del hand[key]
...
>>> hand
{'m': 1, 'l': 1}
>>>
听写理解?
{k: v for k, v in hand.items() if v != 0}
在 python 2.6 及更早版本中:
dict((k, v) for k, v in hand.items() if v != 0)