【发布时间】:2021-07-23 08:59:32
【问题描述】:
我有一个独特的用例。我的主要要求是效率和速度。我有一个长度为 40,000 的单词列表和一个格式为 data: {id1: ['hi','how'],id2:['I','love]..} 且长度为 250,000 的字典。我在这里遇到了很多关于 SO 的问题,但找不到一个可能有效的问题。
如何检查单词列表中的每个单词是否存在于每个字典的单词列表(值)中?通常,可以执行以下操作:
all_words = get_vocabulary(data)
index = {}
for word in all_words:
for doc, tokens in data.items():
if word in tokens :
''' do something with key and tokens'''
通过这样做,我可以检查单词是否存在并完成其余的工作。但是,我的字典和列表都很大,这需要很长时间。
如果我必须一遍又一遍地翻字典,它显然标志着@DeepSpace in this question提到的问题
非常感谢您提供的任何帮助。
【问题讨论】:
-
澄清一下,每次发现你要
do something吗?还是应该只做一次? -
所以基本上,我会创建一个反向索引。如果找到,我将存储找到该单词的 ID,如下所示:{'love':[id1,id2, id3..],'hate':[id9,id1,id4].}
-
哦,这和我以为你问的不一样……
标签: python list dictionary for-loop list-comprehension