python 中的字符串匹配 elif 条件无法正常工作

elif condition not working properly for string matching in python

我正在开发网络抓取代码,同时我正在尝试修改代码以在网站 link 具有预定义字符串列表中的字符串时提取特定元素。我试图在 if elif 条件的帮助下做到这一点。

上下文与此类似:

list1 = ["apple","bat"]
list2 = ["cat", "mat"]

tester = ["www.cat.com","www.website.com","www.apple.com"]
for a in tester:
    print(a)
    if (item1 in a for item1 in list1):
        print("apple is present")
    elif ("john" in a):
        print("failed")
    elif (item2 in a for item2 in list2):
        print("cat is present")

但问题是匹配没有正确发生,循环给出第一个条件的输出,而不是第二个检查条件。关于如何克服这种行为的任何建议?

我得到的输出是:

apple is present
apple is present
apple is present

如果 if 总是成功而不是 elif,那么问题是 if 本身,而不是 elif。

在您的情况下,您缺少 any:

if any(item1 in a for item1 in list1):