dict
たくさんのエントリがある があります。そのうちのいくつかだけに興味があります。他のエントリをすべて削除する簡単な方法はありますか?
ベストアンサー1
新しい辞書を構築する:
dict_you_want = {key: old_dict[key] for key in your_keys}
辞書の理解を使用します。
これらがないバージョン (Python 2.6 以前など) を使用する場合は、 を作成してくださいdict((key, old_dict[key]) for ...)
。見た目は劣りますが、同じです。
jnnnnn のバージョンとは異なり、これは、任意のサイズの s に対して安定したパフォーマンス (your_keys の数のみに依存) を備えていることに注意してくださいold_dict
。速度とメモリの両方の点で。これはジェネレータ式であるため、一度に 1 つの項目を処理し、old_dict のすべての項目を調べるわけではありません。
すべてをその場で削除する:
unwanted = set(old_dict) - set(your_keys)
for unwanted_key in unwanted: del your_dict[unwanted_key]