Pythonで配列から特定の文字列を含む要素を抽出する方法 – リスト内包表記

コンピュータ

Pythonのオブジェクトにどのようなプロパティがあるか確認するためにdir(オブジェクト)を実行することがあります。
マニュアルなどの情報が無くとも、プロパティ名で機能を推測できたりして便利です。
ただ、プロパティが多くなると、検索性がわるくなるんで、キーワードで絞り込みを行いたいと思います。

以下のコードはGIMP3.0のPython-FuコンソールでGimp.Layerオブジェクトのプロパティの一覧からget_cを含むプロパティを絞り込んだ例です。

[p for p in dir(Gimp.Layer) if "get_c" in p]

# 結果
# ['get_children', 'get_color_tag', 'get_composite_mode', 'get_composite_space']

これはリスト内包表記という名称で、結果を変数で受け取ると、とある配列から条件で抽出した新しい配列として取り出すことが出来て便利です。

1行にforだったりifだったりinが現れて、個人的に余り慣れていない構文なので、よくGoogle検索して調べます。

コメント