我正在尝试获取多个字符串,然后查找该字符串的哪些块在列表中。此类问题的大多数其他答案都涉及使用 set()
或 any()
,它们都采用单个字符串参数。
所以代码应该是这样的:
my_list = ["spam", "eggs", "foobar and monty python"]
search_term = "monty python"
if search_term in my_list:
return True
但这行不通,那你怎么做呢?
答案 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]`)