大家好,我是Python进阶。前言前几天在彩哥交流群里,一位名叫【Mr.hua]在Python交流群里问了一个关于Python字符串基础的问题。乍一看觉得很简单,其实也不难。题目如下图所示。问题:如何查找字符串中包含的多个元素。比如字符串中包含“dormitory”或“apartment”或“hotel”中的任意一个,则返回1。大佬提议用正则表达式,[dcpeng]大佬提议用any()和all()函数。当然也有很多方法可以解决,欢迎大家在留言区留言或者私信我分享答案。这里我综合了大家给出的答案,整理出了三个实施方案。一起来看看吧!解决方法一这里是【菜哥】提供的代码,使用了any()函数,恰到好处。下面直接来看看吧。编码吧!s='宿舍是饿了么酒店'any([xinsforxin['dormitory','apartment','hotel']])方法二这里是小明老师的代码,直接排上去。importretext='宿舍是饿了么酒店're.search('宿舍|公寓|酒店',text)方法三这里是【海信广告1】boss的代码,本质上也是正则的,但是这里完全是基于问题Willingtodosomething,如果确定存在则返回1。#coding:utf-8importredeffind_kw(text):kw=['dormitory','apartment','hotel']forkinkw:f_t=re.search(k,text)#如果字符串中包含关键字,则返回True,否则返回Noneiff_t:return1if__name__=='__main__':text='我住在希尔顿酒店'result=find_kw(text)ifresult:print(result)#返回1后打印返回值1,否则此时不打印任何值代码sharing之后[睡马研究成]大哥还专门问了下,如果需要返回值1,怎么办?答案已经在上面了,当然,结合方法一和方法二,尤其是方法一,你完全可以把any()函数换成你自己自定义的返回1的函数,只要后面的推导不为空即可,会有戏。总之,我是Python高级。本文针对爱好者对Python字符串的疑问,给出了使用Python基础+正则表达式处理的解决方案,完全满足了爱好者的要求。
