ホームページ >バックエンド開発 >Python チュートリアル >Python で任意の条件に基づいて辞書を効率的にフィルタリングするにはどうすればよいですか?

Python で任意の条件に基づいて辞書を効率的にフィルタリングするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 10:15:03874ブラウズ

How can I efficiently filter a dictionary based on arbitrary conditions in Python?

任意の条件で辞書をフィルタリングする

辞書は、Python でデータを整理および保存するための強力な手段を提供します。ただし、特定の条件に基づいて特定の要素をフィルタリングする必要が生じることがよくあります。

座標 (x, y) を持つ点の辞書があるシナリオを考えてみましょう:

points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)}

x 値と y 値の両方が 5 より小さい点を含む新しい辞書を作成するには、最初にループベースのアプローチを試みます。

for item in [i for i in points.items() if i[1][0] < 5 and i[1][1] < 5]:
    points_small[item[0]] = item[1]

ただし、辞書内包表記を使用した、よりエレガントで簡潔な解決策が存在します。

Python 3:

points_small = {k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}

Python 2 (2.7 ):

points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}

辞書内包表記は簡潔な辞書要素をフィルタリングするための読みやすい構文。従来のループベースのアプローチと比較して、コードの保守性とパフォーマンスを大幅に向上させることができます。

以上がPython で任意の条件に基づいて辞書を効率的にフィルタリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。