python判断某个字符串中是否存在指定字符_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

>>>

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值