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

如何使用Python打印两个列表中的共有匹配字符串

Python 查找并打印两个列表共有匹配字符串的实现方法

Python 没有单独命名的专属内置函数直接完成这个需求,但可以通过内置数据结构的原生方法非常便捷地实现,以下是常用方案:

  • 方案1:集合交集法(无顺序要求时最高效)
    集合类型原生支持交集运算,可以直接取出两个可迭代对象的共有元素,适合不在乎输出顺序、只需要去重后的共有值的场景:
    list1 = ['Apples', 'Bananas', 'Oranges']
    list2 = ['Oranges', 'Grapes', 'Strawberries', 'Apples']
    
    # 计算两个列表的共有元素
    common = set(list1) & set(list2)
    # 逐行打印匹配结果
    for item in common:
        print(item)
    
    运行后会输出两个列表共有的Apples和Oranges,注意集合是无序结构,输出的两个元素顺序不固定。
  • 方案2:列表推导式法(保留顺序、适配重复元素场景)
    如果你需要保留元素在原列表中的出现顺序,或者列表中存在重复元素、需要保留所有匹配的重复项,可以用列表推导式实现。如果列表长度较大,建议先把用来判断的列表转成集合,大幅提升成员判断的速度:
    list1 = ['Apples', 'Bananas', 'Oranges']
    list2 = ['Oranges', 'Grapes', 'Strawberries', 'Apples']
    
    # 先转集合优化判断效率
    check_set = set(list2)
    # 按list1的顺序提取所有匹配元素
    common = [item for item in list1 if item in check_set]
    # 逐行打印
    for item in common:
        print(item)
    
    这个写法的输出顺序会和list1中共有元素的出现顺序一致,即先输出Apples再输出Oranges。

补充说明:以上方案默认是字符串精确匹配,如果需要做大小写不敏感匹配、子串模糊匹配,只需要修改判断条件即可,比如大小写不敏感的判断可以写为item.lower() in {x.lower() for x in list2}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:33:39