检查列表中另一个多字符串中的多字符串

时间:2021-03-14 15:21:49

标签: python-3.x string list

我正在尝试获取多个字符串,然后查找该字符串的哪些块在列表中。此类问题的大多数其他答案都涉及使用 set()any(),它们都采用单个字符串参数。

所以代码应该是这样的:

my_list = ["spam", "eggs", "foobar and monty python"]
search_term = "monty python"
if search_term in my_list:
     return True

但这行不通,那你怎么做呢?

1 个答案:

答案 0 :(得分:0)

这不起作用,因为 "monty python" 不在 my_list 中,而 "foobar and monty python" 是。如果要查找列表中的任何字符串是否包含另一个字符串,则需要遍历列表并使用 in:

for i in my_list:
    if search_term in i:
        return True

i 表示最后一个元素 "foobar and monty python" 时,search_term in i 将是 True,因为 "monty python" in "foobar and monty python"True。要使用您问题中提到的 any() 以获得更简洁的代码:

any([search_term in i for i in my_list]`)