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
必要な結果を出力できます。
実際、理由は非常に単純です。結果はブール値ではなく文字列です。