我需要快速搜索文本文档中的行,并与其他输出进行比较,如果文本文档中的行相等,则必须对索引进行一些计算,因此我必须使用枚举,然后要通过当前从我的文档列表中获取其他行索引,所以最后一点是一个要点,我想比现在更快。数据库是一个很长的列表,一行一行,另一行一行。因此,我尝试了许多变体,如果其中一些变体更快,则无法使用枚举。
您能帮我加快搜索速度吗?
所以这就是我想要的方式,但是这种方式对1500行以上的数据非常慢,不是很大,但实际上,它的工作速度很慢,如果文本存在于文本文档的行中,则需要通过文本索引快速找到(y)和计算:
with open('C:\path\doc.txt', 'r') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if (text) in line:
if i % onx:
y = lines[i + 4]
print (y)
如果我采用这种方式,则可以更快地工作,但是如何在此处使用枚举:
d = {}
f = open("C:\path\doc.txt","r")
for line in f:
line = line.rstrip()
l = len(line)+1
for i in range(1,l):
d[line[:i]] = True
f.close()
while True:
w = ('text')
if not w:
break
if w in d:
print (w)
同样在这里,我不能直接使用枚举,只能将(line)作为第二个变量,但这肯定会使情况变得更糟:
with open('C:\path\doc.txt', 'r') as inF:
for line in inF:
if (text) in line:
print (line)
以这种方式进行搜索将导致O(n * m)搜索复杂性,其中n和m是输出和文本文件的大小。使用枚举可能会非常慢...如果您生成将字符串(文件行)映射到其索引的字典,则可以将搜索的复杂度降低为O(n + m)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句