python - Python说它在不包含关键字的字符串中找到了关键字
问题描述
web1、web2和web3是我从中抓取的三个不同的网站。我想看看它们是否包含或company1
的名称。这以前工作得很好,但目前不工作。像这样回报所有的公司。当我打印 web1、web2 和 web3 时,我可以看到它们不包含任何公司名称。这是代码:company2
company3
Print(matches)
['company1', 'company2', 'company3']
companies = [ 'company1', 'company2', 'company3' ]
matches = [ x for x in companies if x in web1 or web2 or web3 ]
print(matches)
当我当时只将匹配项更改为一个来源时,它显示没有找到公司名称。当我尝试同时在多个来源中搜索公司名称时,就会出现问题。感谢所有帮助。
解决方案
您的语法略有偏差,但不幸的是它仍然是有效的 Python。您打算使用的逻辑是这样的:
matches = [ x for x in companies if x in web1 or x in web2 or x in web3 ]
也就是说,您要检查给定公司是否位于三个网站地址中的任何一个中。正如您所写,所有公司都将永远通过,因为web2
并将web3
永远评估为真。
试试这个更正的版本:
companies = [ 'company1', 'company2', 'company3' ]
web1 = 'http://www.company1.com'
web2 = 'http://www.company1.com'
web3 = 'http://www.company1.com'
matches = [ x for x in companies if x in web1 or x in web2 or x in web3 ]
print(matches)
这仅打印:
['company1']
请注意,我有意将所有三个网站地址设置为仅匹配第一家公司,以表明只有这家公司被打印。
推荐阅读
- scala - 如何创建涉及某些功能在范围内的“块”的 DSL?
- python - 在 Python3 上使用 Pandas 未对齐数据框
- r - Plot dates with regular interval in R
- python-3.x - 如何使用烧瓶获取图像上传到服务器的元数据。
- angular - 角度自定义控件 - 星级 - 来自输入的值
- jquery - Jquery根据选项更改div
- c++ - 缺少链表的测试用例
- angular - 我们如何在 Angular5 中的(单击)事件上添加两个函数
- android - android.view.InflateException:二进制 XML 文件行(不存在)
- php - php中的表单验证——错误和成功信息同时显示