比较文本文件列表

2024-09-29 06:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python比较不同文件中的两个列表。为此,我使用以下方法:

truepositives = "a.txt"
with open(truepositives) as file1list:
    file1l = file1list.read().splitlines()

basepairout = "b.txt"

with open(basepairout) as templist:
    templ = templist.read().splitlines()

set1=file1l
set2=templ

truepositives = []
falsepositives = []

for line2 in set2:
    for line1 in set1:
        if (line2.find(line1) != -1):
            if line2 not in truepositives:
                truepositives.append(line2)
        else:
            if line2 not in falsepositives:
                falsepositives.append(line2)

我想把“所有在set2上但不在set1中的东西”分配给假阳性。我的'if'函数工作正常,但是'else'函数返回整个set2。你知道为什么吗?你知道吗


Tags: intxtreadifaswithopenset1
2条回答

在循环之前保留一个布尔值“exist”,并将其设置为false。。。您的问题是,在set1中的每个迭代都使用else语句,而这些迭代不符合您的条件

应该是这样的:

for line2 in set2:
    exist = False
    for line1 in set1:
        if (line2.find(line1) == 1):
                exist = True
                break

    if exist == False:
        falsepositives.append(line2)
    else:
        truepositives.append(line2)

相关问题 更多 >