Python は文字列に複数の文字が存在するかどうかを判断します (踏み込みやすいピット)

Python は文字列に複数の文字が存在するかどうかを判断します (踏み込みやすいピット)

1、起因

現在、いくつかの URL を Python で処理していますが、ファイル形式の URL を残して、当然のように次の文を書く必要がありますが、思うような効果が得られないことがわかりました。

a = [
    "../../../../images/yc-logo.png",
    "../../../../images/yc-logo.png",
    "../../../../images/iconfont.css",
    "../../../../images/main.css",
    "../../../../images/base.css",
    "/assets/js/main.aa150fc5.js",
    "/assets/js/url.6a11f7be.js",
    "/assets/js/debounce.c3f1e98b.js",
    "/assets/js/jsx-runtime.40bbe6eb.js",
    "/assets/js/_commonjsHelpers.b5cbd927.js",
    "/assets/js/download.2306183f.js",
    "http://bdimg.share.baidu.com/static/api/css/share_style0_16.css?v=8105b07e.css",
    "javascript:doZoom(16)",
    "javascript:doZoom(14)",
    "javascript:doZoom(12)",
    "javascript:print()",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220120/6377829071580078127600762.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/63794080993792101573245891.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/63794080994292101554106751.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/6379408099440147655911442.pdf"
]
for i in range(len(a)):
    if '.pdf' or '.txt' or '.docx' or '.doc' in a[i]:
        print(a[i])
    else:
        pass

ここに画像の説明を挿入
? ? ? 黒い疑問符、ファイル形式のリンクを出力できないのはなぜですか? たゆまぬ努力の末、ようやく問題を発見しました。

2. ソリューション

に修正

a = [
    "../../../../images/yc-logo.png",
    "../../../../images/yc-logo.png",
    "../../../../images/iconfont.css",
    "../../../../images/main.css",
    "../../../../images/base.css",
    "/assets/js/main.aa150fc5.js",
    "/assets/js/url.6a11f7be.js",
    "/assets/js/debounce.c3f1e98b.js",
    "/assets/js/jsx-runtime.40bbe6eb.js",
    "/assets/js/_commonjsHelpers.b5cbd927.js",
    "/assets/js/download.2306183f.js",
    "http://bdimg.share.baidu.com/static/api/css/share_style0_16.css?v=8105b07e.css",
    "javascript:doZoom(16)",
    "javascript:doZoom(14)",
    "javascript:doZoom(12)",
    "javascript:print()",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220120/6377829071580078127600762.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/63794080993792101573245891.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/63794080994292101554106751.pdf",
    "https://www.lnypcg.com.cn/ueditor/net/upload/file/20220722/6379408099440147655911442.pdf"
]
for i in range(len(a)):
	# 修改下面这一句
    if '.pdf' in a[i] or '.txt' in a[i] or '.docx' in a[i] or '.doc' in a[i]:
        print(a[i])
    else:
        pass

必要な結果を出力できます。

ここに画像の説明を挿入
実際、理由は非常に単純です。結果はブール値ではなく文字列です。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/a6661314/article/details/126440836