Python判断一个字符串中是否存在多个子串中的一个
在使用python的开发过程中,常常需要判断,字符串中是否存在子串的问题,
但判断一个字符串中是否存在多个字串中的一个时,如if (a or b) in c或者if x contains a|b|c|d…,
似乎就需要借助for做循环判断,那么这种情况有没有更pythonic的方法呢?
判断一个字符串中是否存在某一个子串
判断一个字符串中是否存在子串通常使用in关键词,如下:
>>> a = "I Love Crystal!And I Hate Tom!" >>> b = "Crystal" >>> c = "Tom" >>> d = "Jessie" >>> print(b in a) True >>> print(d in a) False >>>
in关键词可以用来判断一个字符串中是否含有一个子串
如"Crystal"在"I Love Crystal!And I Hate Tom!"中,"Jessie"不在"I Love Crystal!And I Hate Tom!"中。
判断一个字符中是否含有多个子串中的一个
问题来了
如果如果我想判断```"I Love Crystal!And I Hate Tom!"```是否含有```"Crystal", "Tom", "Jessie"```中的任意一个
只要有其中的任意一个就输出True,应该怎么判断呢?
>>> a = "I Love Crystal!And I Hate Tom!" >>> name_list = ["Jessie", "Tom", "Crystal"] >>> for name in name_list: ... if name in a: ... print("got you!") ... break ... got you! >>>
我们发现,代码结构看起来还是不够pythonic
有没有更加优雅的写法呢?
可以使用内置的any()函数。
>>> a = "I Love Crystal!And I Hate Tom!" >>> name_list = ["Jessie", "Tom", "Crystal"] >>> print(any(name in a for name in name_list)) True >>> name_list = ["Jessie", "Tomi", "Rose"] >>> print(any(name in a for name in name_list)) False >>>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2018-11-11 2.3 Python语言基础
2018-11-11 2.2 IPython基础
2018-11-11 2.1 The Python Interpreter(python解释器)
2018-11-11 1.6 Navigating This Book(本书导航)
2018-11-11 1.5 Community and Conferences(社区和讨论组)+ 私货
2018-11-11 1.4 Installation and Setup(安装和设置)
2018-11-11 1.3 Essential Python Libraries(一些重要的Python库)