检查 Python 中的字符串中是否存在单词列表
Check if list of words exists in a String in Python
检查字符串中是否存在单词列表:
- 使用生成器表达式迭代列表。
- 检查字符串中是否包含每个单词。
- 如果所有元素都满足条件,则列表中的单词存在于字符串中。
主程序
list_of_words = ['bobby', 'hadz', 'com'] my_str = 'bobby123' # ✅ Check if any words from list exist in a string any_word_in_string = any(word in my_str for word in list_of_words) print(any_word_in_string) # 👉️ True # ------------------------------------------------------ # ✅ Check if all words from list exist in a string all_words_in_string = all(word in my_str for word in list_of_words) print(all_words_in_string) # 👉️ False # ------------------------------------------------------ # ✅ Find words from list that exist in a string matching_words = [word for word in list_of_words if word in my_str] print(matching_words) # 👉️ ['bobby']
第一个示例使用any()
函数检查列表中的任何单词是否存在于字符串中。
主程序
list_of_words = ['bobby', 'hadz', 'com'] my_str = 'bobby123' any_word_in_string = any(word in my_str for word in list_of_words) print(any_word_in_string) # 👉️ True if any_word_in_string: # 👇️ this runs print('Some of the words from the list are contained in the string') else: print('None of the words from the list are contained in the string')
我们使用生成器表达式来遍历列表。
生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们使用in
运算符检查当前单词是否包含在字符串中并返回结果。
in 运算符
测试成员资格。
例如,如果是 的成员,则x in s
计算为 ,否则计算为。True
x
s
False
主程序
my_str = 'bobby hadz' print('bobby' in my_str) # 👉️ True print('another' in my_str) # 👉️ False
如果您需要检查列表中的任何单词是否包含在字符串中,忽略大小写,将两个字符串都转换为小写。
主程序
list_of_words = ['BOBBY', 'HADZ', 'COM'] my_str = 'bobby123' any_word_in_string = any(word.lower() in my_str.lower() for word in list_of_words) print(any_word_in_string) # 👉️ True
any函数接受一个可迭代对象作为参数,如果可迭代对象中的True
任何元素为真则返回。
如果条件返回
True
列表中的任何单词,则any()
函数短路并返回True
。如果您需要检查列表中的所有单词是否都包含在字符串中,请改用该all()
函数。
主程序
list_of_words = ['bobby', 'hadz', 'com'] my_str = 'bobbyhadz.com' all_words_in_string = all(word in my_str for word in list_of_words) print(all_words_in_string) # 👉️ True
all()内置函数接受一个可迭代对象作为参数,如果可迭代对象中的True
所有元素都为真(或可迭代对象为空)则返回。
如果您需要从列表中查找字符串中包含的单词,请使用列表理解。
主程序
list_of_words = ['bobby', 'hadz', 'com'] my_str = 'bobby 306' matching_words = [word for word in list_of_words if word in my_str] print(matching_words) # 👉️ ['bobby']
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
新列表仅包含字符串中包含的单词。
您可以通过将两个字符串都转换为小写来执行不区分大小写的成员资格测试。
主程序
list_of_words = ['bobby', 'hadz', 'com'] my_str = 'BOBBY 306' matching_words = [word for word in list_of_words if word.lower() in my_str.lower()] print(matching_words) # 👉️ ['bobby']
str.lower方法返回字符串
的副本,其中所有大小写字符都转换为小写。
将两个字符串都转换为小写或大写允许进行不区分大小写的比较。