Python 程序测试字符串是否包含列表中的元素
在本文中,我们将学习如何在 Python 中检查字符串是否包含列表中的元素。
使用的方法
使用嵌套 For 循环
使用列表推导式
使用 any() 函数
使用 find() 函数
示例
假设我们已获取 输入字符串 和 输入列表。我们现在将检查输入字符串是否至少包含任何一个输入列表元素。
输入
inputString = "tutorialspoint 是学习编码的最佳平台" inputList = ['hello', 'tutorialspoint', 'python']
输出
是的,字符串包含输入列表中的元素
在上面的例子中,输入字符串包含"tutorialspoint",所以答案是肯定的。
方法 1:使用嵌套 For 循环
算法(步骤)
以下是执行所需任务所要遵循的算法/步骤 –。
创建一个变量来存储输入字符串。
创建另一个变量来存储输入列表。
使用 split() 函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将输入字符串拆分为单词列表。
用 0 初始化临时标志 (temp_flag) 变量。
使用 for 循环 遍历上述拆分的单词列表。
使用另一个 嵌套 for 循环 遍历输入列表
使用 if 条件 语句检查两个元素是否相等。
如果条件为,则将 temp_flag 设置为 1 true。
如果 temp_flag 变为 1,则使用 break 语句中断循环。
使用 if 条件语句检查 temp_flag 的值是否为 1。
打印结果
示例
以下程序使用 for 嵌套 for 循环检查字符串是否包含任何输入列表元素 –
# 输入字符串 inputString = "tutorialspoint 是编码的最佳学习平台" # 输入列表 inputList = ['hello', 'tutorialspoint', 'python'] # 打印输入字符串 print("输入字符串:", inputString) # 打印输入列表 print("输入列表:", inputList) # 拆分将字符串输入到单词列表中 wordsList = inputString.split(" ") # 临时标志变量 temp_flag = 0 # 遍历上述拆分的单词列表 for p in wordsList: # 遍历输入列表 for q in inputList: # 检查两个元素是否相等 if p == q: # 如果条件为真,则将 temp_flag 的值设置为 1 temp_flag = 1 # 如果 temp_flag 变为 1,则中断循环 break # 检查 temp_flag 的值是否为 1 if temp_flag == 1: # 如果条件为真,则打印"YES" print("YES,字符串包含输入列表中的元素") else: # else print "NO" print("NO,字符串不包含输入列表中的元素")
输出
执行时,上述程序将生成以下输出 –
输入字符串:tutorialspoint 是编码的最佳学习平台 输入列表:['hello', 'tutorialspoint', 'python'] YES,字符串包含输入列表中的元素
方法 2:使用列表推导式
列表推导式
当您希望根据现有列表的值构建新列表时,列表推导式提供了一种更短/简洁的方法语法。
bool() 函数 − 返回给定对象的布尔值
示例
以下程序使用列表推导式检查输入字符串是否包含任何输入列表元素 –
# 输入字符串 inputString = "tutorialspoint 是编码的最佳学习平台" # 输入列表 inputList = ['hello', 'tutorialspoint', 'python'] # 打印输入字符串 print("输入字符串:", inputString) # 打印输入列表 print("输入列表:", inputList) print() # 检查输入字符串是否包含列表元素 # 使用列表推导式 output = [i for i in inputList if(i in inputString)] # 将结果输出打印为布尔值 print("检查输入字符串是否包含列表元素:",bool(输出))
输出
输入字符串:tutorialspoint 是最佳的编码学习平台 输入列表:['hello', 'tutorialspoint', 'python'] 检查输入字符串是否包含列表元素:True
方法 3:使用 any() 函数
如果可迭代对象中的任何项为真,则 any() 函数返回 True,否则返回 False。
语法
any(iterable)
示例
以下程序使用 any() 函数检查输入字符串是否包含任何输入列表元素 –
# 输入字符串 inputString = "tutorialspoint 是最佳的编码学习平台" # 输入列表 inputList = ['bat', 'cat', 'dog'] # 打印输入字符串 print("输入字符串:", inputString) # 打印输入列表 print("输入列表:", inputList) print() # 检查输入字符串是否包含列表元素 # 使用 any() 函数 output = any(k in inputString for k in inputList) print("检查输入字符串是否包含列表元素:", bool(output))
输出
输入字符串:tutorialspoint 是学习编码的最佳平台 输入列表:['bat', 'cat', 'dog'] 检查输入字符串是否包含列表元素:False
方法 4:使用 find() 函数
在此方法中,我们使用 find() 方法查看单词是否存在于列表中;否则返回 -1。
find() 方法
查找给定值的第一次出现。如果未找到该值,则返回 -1。
语法
string.find(value, start, end)
示例
以下程序使用 find() 函数检查输入字符串是否包含任何输入列表元素 –
# 输入字符串 inputString = "tutorialspoint 是编码的最佳学习平台" # 输入列表 inputList = ['bat', 'cat', 'dog'] # 打印输入字符串 print("输入字符串:", inputString) # 打印输入列表 print("输入列表:", inputList) print() # 最初假设结果为 False reslt = False # 初始化一个值为 0 的变量 count = 0 # 遍历输入列表 for item in inputList: # 检查当前列表项是否在字符串中找到 if(inputString.find(item) != -1): # 如果条件为真,则将计数值增加 1 count += 1 # 检查计数值是否大于或等于 1 if(count >= 1): # 如果条件为真,则将结果指定为 True reslt = True print("检查输入字符串是否包含列表元素:", bool(reslt))
输出
输入字符串:tutorialspoint 是学习编码的最佳平台 输入列表:['bat', 'cat', 'dog'] 检查输入字符串是否包含列表元素:False
结论
在本文中,我们学习了如何使用四种不同的方法来确定字符串是否包含列表中的元素。此外,我们还学习了如何将结果显示为布尔值,而不是使用条件语句。