Python:如何判断目标字符串是否存在于列表元素的子串中?
问题解决:检查列表元素是否包含指定子串
原代码的逻辑是判断'dog'是否作为独立元素存在于列表中,这和你需要的「检查子字符串」需求不符。可以通过以下两种方式修改:
方法一:使用any()函数(推荐)
利用Python内置的any()函数配合生成器表达式,简洁高效地完成检查:
test_list = ['small_cat', 'big_dog', 'turtle'] if any('dog' in item for item in test_list): output = 'Bad' else: output = 'Good' print(output) # 修正原代码的变量名大小写错误:Output → output
any()会遍历列表元素,只要有一个元素包含'dog'子串,就返回True,直接触发output='Bad'- 生成器表达式在找到第一个符合条件的元素后就会停止遍历,无需遍历整个列表,效率更高
方法二:手动循环遍历
如果更倾向于直观的循环逻辑,可以这样写:
test_list = ['small_cat', 'big_dog', 'turtle'] has_dog_substring = False for item in test_list: if 'dog' in item: has_dog_substring = True break # 找到目标子串后立即终止循环 output = 'Bad' if has_dog_substring else 'Good' print(output)
- 手动遍历每个元素,一旦发现包含
'dog'的元素,就标记状态并跳出循环,避免不必要的遍历
内容的提问来源于stack exchange,提问作者Acuity
相关产品推荐
相关产品推荐

