特定の内容を含む文字列のフィルタリング
このプログラミングの質問では、文字列のリストをその内容に基づいてフィルタリングする解決策を求めます。 ['a', 'ab', 'abc', 'bac'] などのリストが与えられた場合、私たちの目標は、'ab' などの特定の部分文字列を持つ文字列のみを含むリストを抽出することです。
Python の実装
Python でこのフィルタリングを実現するには、さまざまな方法を使用できます。効率的なアプローチの 1 つは、リスト内包表記の使用です。
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = [k for k in lst if 'ab' in k] # Result: ['ab', 'abc']</code>
このコードでは、内包表記を使用して元のリストを反復処理し、「in」演算子を使用して各文字列に部分文字列「ab」が含まれているかどうかを確認します。この条件を満たす文字列のみが結果リストに含まれます。
もう 1 つのオプションは、フィルター関数を活用することです:
Python 2:
<code class="python">from itertools import ifilter lst = ['a', 'ab', 'abc', 'bac'] result = ifilter(lambda k: 'ab' in k, lst) # Result: ['ab', 'abc']</code>
Python 3:
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = list(filter(lambda k: 'ab' in k, lst)) # Result: ['ab', 'abc']</code>
Python 3 では、filter はイテレータを返します。リストを取得するには、list() 関数を使用して明示的にキャストします。 filter 関数はフィルタリングを実行する別の方法を提供しますが、このタイプの操作では一般にリスト内包表記の方がより簡潔で効率的であると考えられています。
以上がPython で特定の部分文字列の内容に基づいて文字列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。