Python 3.6:如何将文本文件分为两组并检查交叉点
我现在开始使用Python3.6,并使用IDLE开发区。我一直在网上寻找以下问题的解决方案: 我有两个文本文件。第一个是我的输入列表,第二个是我的黑名单。我想检查输入列表中的一行是否也在黑名单中。最终目标是创建一个包含所有交叉点的新列表 我目前正在做以下工作:Python 3.6:如何将文本文件分为两组并检查交叉点,python,python-3.x,Python,Python 3.x,我现在开始使用Python3.6,并使用IDLE开发区。我一直在网上寻找以下问题的解决方案: 我有两个文本文件。第一个是我的输入列表,第二个是我的黑名单。我想检查输入列表中的一行是否也在黑名单中。最终目标是创建一个包含所有交叉点的新列表 我目前正在做以下工作: input_list=set(line.strip() for line in open("input_list.txt",'r')) black_list=set(line.strip() for line in open("black
input_list=set(line.strip() for line in open("input_list.txt",'r'))
black_list=set(line.strip() for line in open("black_list.txt",'r'))
print("Input List")
print(input_list)
print("Black List")
print(black_list)
print("Intersection")
print(input_list.intersection(black_list))
我将解释我的推理,希望人们能用他们的答案纠正我的逻辑,而不仅仅是提供解决方案
input_list=set(line.strip() for line in open("input_list.txt",'r'))
black_list=set(line.strip() for line in open("black_list.txt",'r'))
通过以上两行代码,我打开了两套。每一行都会删除所有\n值,只留下每行中的文本
print("Input List")
print(input_list)
print("Black List")
print(black_list)
本节仅用于检查我的文本文件是否已打开,以及所有值是否存在于集合中。为了清晰起见,每个部分上方都有一个标题
print("Intersection")
print(input_list.intersection(black_list))
在这段代码中,我从一个标题开始。然后,我尝试打印找到的任何交点值。目前,我在shell中得到的结果如下所示:
Input List
{'value1', 'value2', 'value3'}
Black List
{'valueA', 'valueB', 'valueC'}
Intersection
set()
我从以下链接获得了有关十字路口的信息:
我从这篇文章中将文件分为几组:
我一直在阅读黑狗I-Tech系列的Python手册第33卷。我用它来学习Python的基础知识。虽然它涵盖了基本的开放、阅读和写作,但没有涵盖更复杂的功能
我设计这个主要是为了创建一个输入域的工具,并检查坏域的黑名单。这是用于搜索引擎优化的目的,并帮助我迅速产生一个否认文件。除了对我的工作实用之外,这也是一个帮助我探索、学习和发展Python理解的个人项目。事实上,您的代码似乎实现了您的目标。集合之间的交集
{'value1', 'value2', 'value3'}
及
的确是空集。Python用
set()
表示一个空集。如果您希望{}
表示空集,那么这实际上是一个空字典。我应该更清楚,value1、value2、value3、valueA、valueB、valueC只是示例值。我用来测试的列表要长得多,在这里发布是不合适的
回想起来,我意识到我犯了一个巨大的错误,没有仔细检查两个表中是否存在任何重复的值
在人们说代码是正确的之后,我现在意识到我的问题是我自己的愚蠢,因为我没有仔细检查是否存在任何重复的值
现在问题解决了,我是个白痴。我不知道你的问题是什么。
{'value1'、'value2'、'value3'}
和{'valueA'、'valueB'、'valueC'}
之间没有交集,您的代码正确地报告了这些交集。看起来您了解了发生的情况。你有什么特别的问题吗?输入列表和黑名单的交集为空,因为两者中没有重叠的值。在我看来,您已经有了一个有效的解决方案:)有问题吗?
{'valueA', 'valueB', 'valueC'}