Pythonで文字列にリストの要素が含まれているかどうかを確認する方法 質問する

Pythonで文字列にリストの要素が含まれているかどうかを確認する方法 質問する

次のようなものがあります:

extensionsToCheck = ['.pdf', '.doc', '.xls']

for extension in extensionsToCheck:
    if extension in url_string:
        print(url_string)

Python でこれを (for ループを使用せずに) よりエレガントに行う方法は何でしょうか? C/C++ のようなこのような方法を考えていましたが、うまくいきませんでした。

if ('.pdf' or '.doc' or '.xls') in url_string:
    print(url_string)

編集: 重複の可能性があるとマークされている以下の質問とこれがどう違うのかを説明しざるを得ません (そのため、閉じられないと思います)。

違いは、私は文字列が文字列のリストの一部であるかどうかをチェックしたかったのに対し、もう 1 つの質問は文字列のリストの文字列が別の文字列のサブ文字列であるかどうかをチェックすることです。似ていますが、まったく同じではありません。オンラインで回答を探すときは、意味が重要だと私は思います。これらの 2 つの質問は、実際には互いに反対の問題を解決しようとしています。ただし、両方の解決策は同じであることがわかります。

ベストアンサー1

ジェネレータを と一緒に使用しますany。これは最初の True で短絡します。

if any(ext in url_string for ext in extensionsToCheck):
    print(url_string)

編集:この回答は OP に受け入れられたようです。私の解決策は彼の特定の問題に対する「十分に良い」解決策であり、リスト内の文字列が別の文字列に見つかるかどうかを確認するための一般的な方法であるかもしれませんが、この解決策が行うことはこれだけであることに注意してください。文字列が見つかる場所 (文字列の末尾など) は関係ありません。URL の場合によくあるように、これが重要な場合は、@Wladimir Palant の回答を参照してください。そうしないと、誤検知のリスクがあります。

おすすめ記事