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

如何比较两个二维list并提取值存在差异的对应id

问题需求

有两个二维数组,每个子元素的第0位为id,第1位为该id对应的取值。需要对比两个数组,返回所有在第二个数组中取值和第一个数组不一致的id。
示例如下:

list1 = [[1,0], [2,1], [3,0]] # 结构为[[id, value]]
list2 = [[1,1], [2,1], [3,1]] # 结构为[[id, value]]

getDifference(list1, list2)
# 返回结果
[1, 3]
实现思路
  • 先将第一个数组转换为id到取值的映射字典,查询时间复杂度为O(1),避免嵌套循环降低效率
  • 遍历第二个数组的所有元素,将当前元素的取值和字典中同id的取值做对比
  • 收集所有取值不一致的id作为结果返回
代码实现
def getDifference(list1, list2):
    # 构建list1的id-值映射字典
    id_value_map = {item[0]: item[1] for item in list1}
    result = []
    for item in list2:
        current_id, current_value = item
        # 若需要将list2存在但list1不存在的id也视为差异,可删除current_id in id_value_map判断
        if current_id in id_value_map and current_value != id_value_map[current_id]:
            result.append(current_id)
    return result
测试验证
list1 = [[1,0], [2,1], [3,0]]
list2 = [[1,1], [2,1], [3,1]]
print(getDifference(list1, list2))
# 输出:[1, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:02