内容に基づいて文字列のリストをフィルタリングする
文字列のリストが与えられた場合、次の内容を含むものだけを抽出する必要が生じる場合があります。特定の部分文字列。 Python では、このフィルタリング操作を実行する効果的な方法がいくつかあります。
リスト内包表記の使用
最も簡単で最も推奨されるアプローチの 1 つは、Python の強力なリスト内包表記を利用することです。 。リスト内包表記は、既存のリストの要素に基づいて新しいリストを作成するための簡潔かつ表現力豊かな方法を提供します。 「ab」を含む文字列をフィルタリングするという特定の要件については、次の内包表記を使用できます:
lst = ['a', 'ab', 'abc', 'bac']
result = [k for k in lst if 'ab' in k]
この内包表記は、元のリスト内の各文字列 ('a'、'ab'、'abc'、'bac') を反復処理してチェックします。部分文字列「ab」が含まれている場合。 true の場合、結果のリストに文字列が追加されます。これにより、必要なフィルター処理されたリストが得られます: ['ab', 'abc'].
フィルター Function の使用
Python で文字列をフィルターするもう 1 つの方法は、次のとおりです。フィルター機能。この関数は、フィルター関数と反復可能オブジェクトを引数として受け取り、フィルター関数を満たす反復可能オブジェクトの要素を生成する反復子を返します。あなたの場合、次のようにフィルターを使用できます:
lst = ['a', 'ab', 'abc', 'bac']
result = list(filter(lambda k: 'ab' in k, lst))
フィルター関数は最初の引数として匿名関数 (ラムダ関数) を受け取り、入力に 'ab' が存在するかどうかをチェックします。弦。 2 番目の引数は元のリストです。フィルターの結果は反復子であり、list() を使用してリストにキャストされます。繰り返しますが、これにより、目的の ['ab', 'abc'] リストが生成されます。
リスト内包表記とフィルター関数の両方で目的のフィルタリングを実現できますが、一般に、リスト内包表記の方が簡潔で読みやすいため、特に次の場合に好まれます。このような単純なフィルタリング タスク。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3