python比较两个大列表并处理

2024-09-30 06:19:51 发布

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

我有两个文本文件。在a.txt中,有这样的行(一百万行):

991000000019999998,b10000021,
991000000019703408,b10000021,
991000545455435408,b10000045,
991000000029703408,b10000045,
...

第一部分是条形码(991000000019703408),第二部分是bib U号码(b10000021)。 请注意,每个bib_编号可能是重复的行。但是条形码是唯一的。所以我认为使用Set()是不好的。 在另一个文件b.txt中,只有关于bib_号码的信息(60万条记录):

^{pr2}$

如果要比较040.txt中的两个文件,那么就需要在第940行中进行比较

我像这样写代码,但是我直到20分钟才得到重用。在

^{3}$

有什么窍门来比较这两个大名单吗?谢谢


Tags: 文件代码txt信息记录编号号码文本文件
1条回答
网友
1楼 · 发布于 2024-09-30 06:19:51

使用sets,查找是O(1)

with open("a.txt", "r") as f1,open("b.txt", "r") as f2,open("c.txt","w") as f3:
    bs = set(b.strip() for b in f2)
    for a in f1:
        x = a.split(',')
        if x[1].strip() not in bs:
            f3.write(a)

我还将研究用于读取逗号分隔值的csv模块。在

相关问题 更多 >

    热门问题