Skip to main content
 首页 » 编程设计

python之索引以更快地搜索文件中的列表

2025年05月04日7txw1958

我有一个包含大约 10 万个列表的文件,还有一个包含平均 50 个列表的文件。

我想将第二个文件中列表的第二项与第一个文件中的第二个元素进行比较,并对第二个文件中的 50 个列表中的每一个重复此操作,并获得所有匹配元素的结果。

我已经为所有这些编写了代码,但这需要花费大量时间,因为它需要检查整个 100k 列表大约 50 次。我想提高速度。

我不能发布我的代码,因为它是大代码的一部分,很难从中推断出任何东西。

请您参考如下方法:

您可以从内存中的第一个文件一次读取所有“lakh”(数十万)行:

import collections 
d = collections.defaultdict(list) 
 
with open('lakhlists.txt') as f: 
    for line in f: 
        aslist = line.split()  # assuming whitespace separators 
        d[aslist[1]].append(aslist) 

你没有给我们很多关键参数,但我敢打赌这将适合典型模型平台的内存(为了合理猜测列表长度)。假设这部分有效,相比之下,只需循环遍历其他小文件并索引到 d 应该是微不足道的;-)

如果您想更准确地表达您的规范和相关数字(最好使用英语),也许可以提供更具体的帮助!