有一个200MB的大文本文件(由段落组成,用空白行分隔),其中包含我必须阅读然后搜索提供的userId(123456、111111、123457等)的用户信息(Id和职位)。 ..)。
文本文件示例:
123456 some text
Java Programmer
some text
...
111111 some text
some text
C++ Programmer
some text
...
123456 some text
C++ Programmer
...
123457 some text
Python Programmer
...
我已将此文本文件读入列表,并用'\ n \ n'分隔符将各段分开:
file = open(largeFilePath)
lines_list = file.read().split('\n\n')
现在,我必须在此列表中搜索提供的ID(数字或字母数字)。 在大约2亿个字符的列表中顺序搜索单个userId大约需要20-30秒,并且至少有50-100个用户要搜索。
我正在寻找一种并行搜索的方法。
解决此问题的建议方法是什么?
谢谢
Zeev
答案 0 :(得分:0)
您应该将它们编入字典:
def _extract_id(user_data):
return user_data[0].partition()[0]
d = {_extract_id(data): data for data in lines_list}
>>> d["myid"]
"..."
结果将返回得更快。