在Python中的多个HUGE列表中查找重复项(比较2、3、4、5个列表)

时间:2018-06-29 10:50:52

标签: python list nlp set

因此,我目前正在研究5个词典,并且未来可能还会更多,每个词典至少有257000多个条目。将它们视为5个巨大的文本文件(大小:10-20 Mb),每行10-30个字符就可以了。 输入示例如下:

abaissements volontaires,abaissement volontaire.N+NA:mp

我的任务是找出不同词典之间的重复单词。 因此,首先,我必须处理该文件,例如,仅从示例中获取 娱乐活动 。在这部分之后,我的想法是要有一个包含像这样的元素的列表:

dict_word_list = [[dict_A, [word1, word2, ...]], [dict_B, [word1, word2, ...]]]

选择列表而不是字典是因为字典在Python中是无序的,我必须知道每个单词列表的相应字典的名称,因此我将相应的字典名称放在每个列表的元素0中。

我的问题是如何找出这些庞大列表之间的重复项,同时保留字典名称? 我尝试了 (如果不在列表中) ,但是由于文件大小和非常旧的处理器(在工作的旧破旧笔记本电脑中使用了Intel Core i3,我无法使用自己的笔记本电脑) (由于机密性问题),该程序仅在此处出现错误。

也许 set 是一个解决方案,但是我该如何推销比较呢?我想要的结果如下:

  

重复dict_A,dict_B:[word1,word2,word3,...]

     

重复dict_B,dict_C:[word1,word2,word3,...]

     

重复dict_A,dict_B和dict_C:[word1,word2,word3,...]

1 个答案:

答案 0 :(得分:0)

设置是一个非常好的方法。您可以执行以下操作:

dict_1 = {1, 2 ,3}
dict_2 = {2, 3, 4}
dict_3 = {3, 4, 5}
dict_1 & dict_2
{2, 3}
dict_1 & dict_2 & dict_3
{3}

从文档中

  

s&t-包含s和t共同元素的新集合