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

标签 python

我有一个包含大约 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 应该是微不足道的;-)

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

关于python - 索引以更快地搜索文件中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941525/

相关文章:

python - 是否有明确定义的 next_batch 函数?

python - 退回多件贵重元素,然后分别调用这些贵重元素

python beautifulsoup没有在div标签之间检索数据

python - Fabric:如何对我的 fabfile 进行单元测试?

python - 在python中将sndarray转换为基于时间的数字?

python - Softbank Pepper 机器人与 Naoqi - 使用 Python 进行摄像头直播延迟

python - lxml 中编码的大写 html 标签

python - 使用 cx_Freeze 卡住的 Python 应用程序启动速度非常慢

python - 多个模型上的 Alembic 迁移

python - Scrapy:如何打印请求引用