特定のキーのみを含むように辞書をフィルターしますか? 質問する

特定のキーのみを含むように辞書をフィルターしますか? 質問する

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]

おすすめ記事