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

如何实现正确判断两个列表存在相同字符的Python函数?

问题解决:判断两个列表是否存在共同元素

你的需求很明确:写一个函数接收两个列表,只要它们有任意一个相同元素就返回True,否则返回False。但你当前的代码存在逻辑问题——它只检查第一个元素就直接返回结果了,完全没机会遍历后面的元素!

先看看原代码的问题:

def contains_duplicates(L1, L2): 
    for i in L1: 
        if i in L1 and i in L2: 
            return True 
        else: 
            return False
  • 循环第一次迭代时,只要第一个元素不满足条件,就直接return False,后面的元素根本不会被检查
  • 条件里的i in L1完全多余,因为i本来就是从L1中遍历出来的

修正后的遍历版本

我们需要让循环完整遍历L1的所有元素,只有当所有元素都不匹配时才返回False:

def contains_duplicates(L1, L2):
    for item in L1:
        if item in L2:
            return True
    # 遍历完所有元素都没找到匹配项,才返回False
    return False

这个版本会逐个检查L1里的元素,一旦发现某个元素在L2中存在,立刻返回True;如果全部遍历完都没找到共同元素,才返回False,完美符合你的需求。

更高效的集合写法

如果你的列表元素比较多,用集合来处理会更高效(集合的成员查询时间复杂度是O(1),而列表是O(n)):

def contains_duplicates(L1, L2):
    return bool(set(L1) & set(L2))

原理是把两个列表转换成集合,求它们的交集。如果交集不为空,bool()转换后就是True,否则是False,代码更简洁,性能也更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:29:13