文字と整数のキーと値のペアを持つ辞書があります。値が 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)