【编程】Python多子串包含

Python any() 函数

Python any() 函数的参数是可遍历的 (列表,元组,字典等等) ,如果其中一个元素导致真,则返回true,否则返回 false 。如果可遍历对象是空,在返回False。

any 对 all

  • any 至少一个元素为真,则返回真。
  • all 全部元素为真,则返回真。

检查多个子串的包含

使用Python的 “any()” .

myList = ['one', 'six','ten'] 
str = "one two three four five"
if any(x in str for x in myList):
print ("Found a match")
else:
print ("Not a match")

结果返回 “Found a match”, 因为有一个元素“one”在字符串里面。

例子2:

myList = ['one', 'six','ten'] 
str = "one two three four five"
isMatch = [True for x in myList if x in str]
if True in isMatch:
print("some of the strings found in str")
else:
print("no strings found in str")

输出

some of the strings found in str

检查列表形式子串的包含

如果列表很长,最好使用Python的正则表达式。

import re 
myList = ['six','ten','One']
str = "one two three four five"
if any(re.findall(''.join(myList), str, re.IGNORECASE)):
print("Found a match")
else:
print("Not Found a match")

结果返回”Found a match”,因为 “one”在列表内。

检查字符串是否包括多个关键字

可以采用递归的方案。

myList = ['six','ten','one'] 
str = "one two three four five"
match = False
for item in myList:
if item in str:
match = True
if match:
print("Found a match")
else:
print("No match found")

结果返回”Found a match” ,因为”one”在列表里面。

包括重复元素的匹配

获得包括重复元素的全部匹配:

>>>myList=[“one”,”six”,”ten”,”one”]
>>>str= “one two three four five”
>>>allMatch=[x for x in myList if x in str]
>>>print(allMatch)
[‘one’,’one’]

列表元素的第一匹配

获得第一个匹配,否则返回False:

myList = ['one', 'six','ten'] 
str = "one two three four five"
firstWord = next((x for x in myList if x in str), "False")
print(firstWord)

结果返回”one” ,因为”one”在列表里第一个匹配。

如何从一个字符串里面提取出首尾词

>>>str=”one two three four five”
>>>first,*middle,last=str.split()
>>>print(first,last)
one five

类似的,检查全部在列表里面的字符串,使用“all” 代替 “any” .

>>>myList=[“one”,”six”]
>>>str=[“one”,”two”,”three”,”four”,”five”]
>>>print(all(x in str for x in myList))
False

上面的结果是False,因为 str里面没有“six”。

此条目发表在人工智能, 服务器, 程序开发分类目录,贴了, , , , , , 标签。将固定链接加入收藏夹。