如何用python判断字符串包含多个字符串中的一个或多个?

开发过程中,常常需要判断字符串是否存在指定的关键词或排除词,如果设置了多个关键词,往往通过串联and条件或借助for循环做判断,有没有更优雅的方法呢?

判断一个字符串含有某个字符串中

p = "Tom is a boy,Lucy is a girl,they all like english!"
w= 'Tom'

print w in p
>>>True
print p.find(w) > -1
>>>True

判断一个字符串含有多个字符串中的任意一个

p = "Tom is a boy,Lucy is a girl,they all like english!"
keywords= 'Tom,Lucy'
excludes = ['english','math']
print any([w in p and w for w in keywords.split(',')])
>>>True
print any(e in p for e in excludes)
>>>True

判断一个字符串含有多个字符串

p = "Tom is a boy,Lucy is a girl,they all like english!"
keywords= 'Tom,Lucy'
filters= ["boy","like"]
print all(f in p for f in filters)
>>>True
print all([w in p and w for w in keywords.split(',')])
>>>True

计算一个字符串含有指定字符串的数量

p = "Tom is a boy,Lucy is a girl,Tom like math and Lucy like english!"
keywords= 'english,math,history,laws'
print sum([1 if w in p and w else 0 for w in keywords.split(',')])
>>>2
### 回答1: 可以使用Python的any()函数和列表推导式来判断字符串数据是否包含指定的关键词列表里的一个多个关键词。具体代码如下: ```python keywords = ['关键词1', '关键词2', '关键词3'] string_data = '这是一段包含关键词2的字符串数据' if any(keyword in string_data for keyword in keywords): print('字符串数据包含指定的关键词列表里的一个多个关键词') else: print('字符串数据不包含指定的关键词列表里的任何一个关键词') ``` 注意:以上回答仅代表个人观点,不代表CSDN或任何组织的观点。 ### 回答2: 可以使用Python字符串查找方法来判断一个字符串是否包含指定的关键词列表里的一个多个关键词。 首先,我们可以定义一个关键词列表,例如: keywords = ["关键词1", "关键词2", "关键词3"] 接下来,我们可以使用字符串的in关键字来判断一个字符串是否包含指定的关键词,例如: string = "这是一个包含关键词1的字符串" if any(keyword in string for keyword in keywords): print("字符串包含指定的关键词") else: print("字符串包含指定的关键词") 上述代码,使用了any()函数和生成器表达式来判断字符串是否包含任意一个关键词。如果字符串包含指定的关键词,则打印"字符串包含指定的关键词",否则打印"字符串包含指定的关键词"。 此方法可以适用于任意长度的关键词列表和任意长度的字符串。 ### 回答3: 在Python,我们可以使用以下方法来判断一个字符串数据是否包含指定的关键词列表一个多个关键词。 首先,我们可以将关键词列表存储在一个列表,例如: keywords = ['关键词1', '关键词2', '关键词3'] 然后,我们可以使用循环遍历关键词列表的每一个关键词,并使用Python字符串方法的find()或index()来检查字符串数据是否包含该关键词。例如: string_data = '这是一个包含关键词1和关键词2的字符串' for keyword in keywords: if keyword in string_data: print("字符串数据包含关键词:", keyword) 上述代码,我们遍历关键词列表的每一个关键词,并判断关键词是否在字符串数据。如果某个关键词存在于字符串数据,则输出相应的提示信息。可以根据实际需求进行进一步操作。 需要注意的是,上述方法判断的是是否存在关键词,而不关心关键词的位置。如果需要考虑关键词的位置或者匹配更复杂的规则,可以使用正则表达式或者第三方库,如re模块来进行处理。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值