手把手教你查找字符串中包孕的多个元素

发布日期:2022-08-06 17:34    点击次数:118

巨匠好,我是Python进阶者。

前言

前几天在才哥交流群里,有个叫【华老师】的粉丝在Python交流群里问了一道对付Python字符串底子的成就,开端一看感应很俭朴,理论上也确凿不难,标题成就成就以下图所示。

成就:怎么查找字符串中包孕的多个元素。比喻某个字符串中包孕“宿舍”或“公寓”或“酒店”任何一个,则前去1。

经管思路

上图中【是小董呀、】大佬提出运用列表硬上,【Barry】大佬提出用正则,也有【dcpeng】大佬提出用any()、all()函数,固然了,另有良多编制可以或许经管,也迎接巨匠留言区留言或许私信我分享答案。

这里我综合巨匠给的答案,摒挡了三个完成规划,上面一起来看看吧!

经管编制 编制一

这里给出【才哥】供应的代码,运用了any()函数,恰如其分,上面间接来看代码吧! 

s = '宿舍 饿了 酒店' any([x in s for x in ['宿舍', '公寓', '酒店']]) 
编制二

这里给出小小明大佬的代码,间接正则安插。

import re text = '宿舍 饿了 酒店' re.search('宿舍|公寓|酒店', text) 

编制三

这里给出【海心广告1】大佬的代码,本质上也是正则,企业服务只不过这里齐满是痛处题意去行事的,假定肯定存在,则前去1。

# coding: utf-8 import re   def find_kw(text):     kw = ['宿舍', '公寓', '酒店']     for k in kw:         f_t = re.search(k, text)  # 假定字符串中含有关键字,则前去True,否则前去None         if f_t:             return 1   if __name__ == '__main__':     text = '我住在希尔顿酒店'     result = find_kw(text)     if result:         print(result)  # 前去1后,打印前去值1,否则不打印任何值 

事先代码分享当前,【冫马讠成】大佬还特地问了一句,假定就是哀告有前去值1,那怎么办呢?答案着实已经在上面了,固然了,联结编制一和编制二,尤为是编制一,你齐全可以或许将any()函数替代成你自身自定义的一个前去值为1的函数,只需后面的推导式查失去不为空,就有戏。

总结

我是Python进阶者。本文基于粉丝针对Python字符串的提问,给出了一个行使Python底子+正则剖明式处理惩罚的经管规划,齐全餍足了粉丝的哀告。

 



相关资讯