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

如何判断两个数字列表除恰好2个元素外其余完全相同?

检查两个数字列表是否仅存在恰好2个不同元素的实现方案

嘿,这个需求我之前也碰到过,其实核心逻辑很清晰,咱们一步步来搞定:

核心思路

要满足「除恰好2个元素外其余完全相同」,首先得保证两个列表的长度一致——不然连元素数量都不一样,肯定没法满足条件。然后咱们只需要统计对应位置上不同元素的数量,只要这个数量刚好等于2,就符合要求啦。

代码实现(Python)

def check_exactly_two_differences(list1, list2):
    # 第一步:长度不同直接排除
    if len(list1) != len(list2):
        return False
    # 统计对应位置不同的元素个数
    difference_count = sum(1 for num1, num2 in zip(list1, list2) if num1 != num2)
    # 只有恰好2个不同才返回True
    return difference_count == 2

测试案例验证

咱们来试几个例子,看看效果:

  • 符合条件的情况:check_exactly_two_differences([1,2,3,4], [1,5,3,6]) → 返回True(第2、4位元素不同)
  • 完全相同的情况:check_exactly_two_differences([1,2,3], [1,2,3]) → 返回False(没有不同元素,不符合「恰好2个」的要求)
  • 长度不一致的情况:check_exactly_two_differences([1,2], [1]) → 返回False
  • 元素交换的情况:check_exactly_two_differences([1,2,3], [2,1,3]) → 返回True(刚好两个位置元素交换,对应位置不同数为2)

额外说明

如果你的需求是「两个列表的元素完全一样,只是恰好有两个元素交换了位置」,上面的代码也完全适用——因为这种场景下对应位置的不同元素数量刚好是2。但如果是元素种类不同但数量刚好两个的情况,只要长度一致,代码也能正确检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:09:21