You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何对比两个trigram元组列表返回相同的三元词组组合

Python实现Trigram共同组合提取

实现思路

  • 先剥离两个列表中每个元素的频次字段,只保留三元词组元组
  • 利用集合的交集特性快速匹配相同元素,天然满足顺序敏感的匹配要求
  • 按需求格式化输出结果即可

完整代码

# 示例输入数据
list1 = [(('I', 'want', 'this'), 456), (('What', 'is', 'this'), 25)]
list2 = [(('this', 'is', 'what'), 12), (('I', 'want', 'this'), 9)]

# 提取所有三元词组转集合,方便快速求交集
trigram_set1 = {item[0] for item in list1}
trigram_set2 = {item[0] for item in list2}

# 得到共同的trigram组合
common_trigrams = trigram_set1 & trigram_set2

# 按示例要求格式化输出
for gram in common_trigrams:
    print(f"'{gram[0]}', '{gram[1]}', '{gram[2]}'")

输出结果

运行上述代码会直接输出你需要的结果:

'I', 'want', 'this'

说明

  • 因为元组是顺序敏感的可哈希类型,所以词组顺序不同的三元组不会被判定为相同,完全匹配需求规则
  • 如果需要把共同结果存为列表,直接执行list3 = list(common_trigrams)即可
  • 该方案时间复杂度为O(n+m)(n、m分别为两个输入列表的长度),大数据量下运行效率也很高

内容的提问来源于stack exchange,提问作者NeedPythonHelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:54:02