如何比较两个列表的 Trigram-word 组合和 return 中相同的组合 Python?

How do I compare Trigram-word-combinations of two lists and return same combinations in Python?

如果出现相同的单词组合,我们基本上想比较两个列表。 我们的 Trigram-Code 给我们带来了这样的东西:

例如(这些是“元组”类型)

List1 = 
(('I', 'want', 'this'),456)
(('What', 'is', 'this') , 25)


List2 = 
(('this', 'is', 'what'), 12)#this one should not count, because the order is different
(('I', 'want', 'this'), 9)

每个列表后面的数字显示了这些三元组合在我们的 DataFrame 中出现的频率,也许您必须先删除它们?

List3 = 列表 1 和列表 2 中出现的三字母组合

    Result should be  "'I', 'want', 'this'"

提前致谢

您可以使用集合交集并且只使用单词的元组:

>>> {x[0] for x in List1} & {x[0] for x in List2}
{('I', 'want', 'this')}

List3 = [ L1phrase[0] for L1phrase in List1 if L1phrase[0] in [L2phrase[0] for L2phrase in List2] ]

你可以做嵌套列表理解