キーに特定の文字列が含まれるPython辞書内の項目をフィルタリングする 質問する

キーに特定の文字列が含まれるPython辞書内の項目をフィルタリングする 質問する

私は C プログラマーで、Python で何かを開発しています。C で次のことを実行する方法 (つまり、C のようなロジックを Python に適用する方法) はわかっていますが、それを「Python」で実行する方法は何なのか疑問に思っています。

辞書 d があり、キー (文字列) に特定の部分文字列が含まれる項目のみのサブセットを操作したいと考えています。

つまり、C ロジックは次のようになります。

for key in d:
    if filter_string in key:
        # do something
    else
        # do nothing, continue

Python版はこんな感じになると思います

filtered_dict = crazy_python_syntax(d, substring)
for key,value in filtered_dict.iteritems():
    # do something

ここではフィルタリング辞書に関する投稿をたくさん見つけましたが、まさにこれに関する投稿は見つかりませんでした。

私の辞書はネストされておらず、Python 2.7を使用しています

ベストアンサー1

いかがでしょうか辞書の理解:

filtered_dict = {k:v for k,v in d.iteritems() if filter_string in k}

一度見れば、英語のように読めるので、説明は不要でしょう。

この構文には Python 2.7 以上が必要です。

Python 3では、dict.items()次のようには使用しませんiteritems()

filtered_dict = {k:v for (k,v) in d.items() if filter_string in k}

おすすめ記事