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):
我正在开发网络抓取代码,同时我正在尝试修改代码以在网站 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):