You need to enable JavaScript to run this app. Python实现两个字符串列表的单词级交集提取方法
优惠活动
大模型
产品
解决方案
定价
更多

Python实现两个字符串列表的单词级交集提取方法

实现方案

核心逻辑分两步:先将两个列表中的所有字符串按空白拆分为独立单词,再筛选出两个单词集合中共同存在的单词,按需匹配输出顺序。

具体实现代码

首先定义原始输入列表:

a = ['ketab khaneh','danesh gah', 'shi rin i']
b = ['ketab khaneh','dan esh gah','shirin i']

可匹配指定输出顺序的实现

如果需要输出的单词顺序和其在a列表中的出现顺序保持一致(和你给出的示例输出完全匹配),可以用以下写法:

# 收集b列表拆分后的所有单词,用集合实现快速查找
b_word_set = set()
for sentence in b:
    b_word_set.update(sentence.split())

output = []
recorded = set()
# 遍历a列表拆分所有单词,筛选出在b中存在的项
for sentence in a:
    for word in sentence.split():
        # 跳过不符合条件、或已经加入结果的重复单词
        if word in b_word_set and word not in recorded:
            output.append(word)
            recorded.add(word)

运行后得到的结果和示例完全一致:['ketab', 'khaneh', 'gah', 'i']

简化版(不要求固定顺序)

如果不需要严格的单词出现顺序,直接用集合求交集的写法更简洁:

# 收集两个列表拆分后的所有单词
words_a = set(word for sentence in a for word in sentence.split())
words_b = set(word for sentence in b for word in sentence.split())
# 求交集后转成列表
output = list(words_a & words_b)

关键细节说明

  • 用不带参数的split()方法拆分字符串,可自动适配多个连续空格、制表符等空白分隔符,比按单个空格拆分的鲁棒性更强。
  • 用集合存储待查找的单词,可将单次查找的时间复杂度从O(n)降到O(1),处理长列表时效率更高。
  • 额外增加的recorded集合用于自动去重,避免输入列表中出现重复单词时,输出结果里出现冗余重复项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 13:15:07