任意の条件で辞書をフィルタリングする
辞書は、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 サイトの他の関連記事を参照してください。