1. ホーム
  2. python

[解決済み] 文字列のリストを内容に基づいてフィルタリングする

2022-07-08 20:50:10

質問

リスト ['a','ab','abc','bac'] を持つ文字列のリストを計算したい。 'ab' を含む文字列のリストを計算したい。つまり、結果は ['ab','abc'] . これはPythonでどのように行うことができますか?

どのように解決するのですか?

この単純なフィルタリングは、Pythonで様々な方法で実現することができます。最も良い方法は、以下のように"リスト内包"を使うことです。

>>> lst = ['a', 'ab', 'abc', 'bac']
>>> [k for k in lst if 'ab' in k]
['ab', 'abc']

別の方法として filter 関数を使うことです。Python 2では

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']

Python 3では、これは イテレータ を返しますが、それをキャストすることができます。

>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']

内包を使うのがベターですが。