Python 判断多个字符是否存在于字符串(容易踩到的坑)

Python 判断多个字符是否存在于字符串(容易踩到的坑)

1、起因

今天用 Python 处理一些 URL,需要留下文件类型的 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

就可以输出我想要的结果啦

在这里插入图片描述
其实原因很简单,我们的结果是一个字符串,而不是bool值

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/a6661314/article/details/126440836