内容に基づいて文字列のリストをフィルタリングする
文字列のリストが与えられた場合、次の内容を含むものだけを抽出する必要が生じる場合があります。特定の部分文字列。 Python では、このフィルタリング操作を実行する効果的な方法がいくつかあります。
リスト内包表記の使用
最も簡単で最も推奨されるアプローチの 1 つは、Python の強力なリスト内包表記を利用することです。 。リスト内包表記は、既存のリストの要素に基づいて新しいリストを作成するための簡潔かつ表現力豊かな方法を提供します。 「ab」を含む文字列をフィルタリングするという特定の要件については、次の内包表記を使用できます:
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = [k for k in lst if 'ab' in k]</code>
この内包表記は、元のリスト ('a'、'ab'、'abc') 内の各文字列を反復処理します。 ', 'bac') を検索し、部分文字列 'ab' が含まれているかどうかを確認します。 true の場合、結果のリストに文字列が追加されます。これにより、目的のフィルタリングされたリストが得られます: ['ab', 'abc'].
フィルタ関数の使用
Python で文字列をフィルタリングする別の方法は、次のとおりです。フィルター機能。この関数は、フィルター関数と反復可能オブジェクトを引数として受け取り、フィルター関数を満たす反復可能オブジェクトの要素を生成する反復子を返します。あなたの場合、次のようにフィルターを使用できます。
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = list(filter(lambda k: 'ab' in k, lst))</code>
フィルター関数は、最初の引数として匿名関数 (ラムダ関数) を受け取り、入力文字列に 'ab' が存在するかどうかをチェックします。 2 番目の引数は元のリストです。フィルターの結果は反復子であり、list() を使用してリストにキャストされます。繰り返しますが、これにより、目的の ['ab', 'abc'] リストが生成されます。
リスト内包表記とフィルター関数の両方で目的のフィルタリングを実現できますが、一般にリスト内包表記の方が簡潔で読みやすいため、特に次の場合に好まれます。このような単純なフィルタリング タスク。
以上がPython で特定の部分文字列を含む文字列のリストをフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。