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

如何在Python 3中找出嵌套列表的差异值并计算差值?

嘿,这问题不难搞定!我来给你一步步说明怎么实现两个嵌套列表的差异值计算~

核心思路

我们需要逐个对比两个嵌套列表中对应位置的元素:

  • 先遍历每一对子列表(也就是两个列表的行)
  • 再遍历每行里的每一对元素
  • 只要两个元素不相等,就计算list_1元素 - list_2元素,把这个差值收集到结果列表里
  • 最后输出结果列表就行啦

基础版代码实现

用嵌套循环的方式,逻辑清晰,适合新手理解:

# 第一个示例测试
list_1 = [[4,9,2],[3,5,7],[8,1,5]]
list_2 = [[4,9,2],[3,5,7],[8,1,6]]

result = []
# 配对两个列表的子列表
for sub_list1, sub_list2 in zip(list_1, list_2):
    # 配对子列表里的每个元素
    for val1, val2 in zip(sub_list1, sub_list2):
        # 只处理不相等的元素
        if val1 != val2:
            result.append(val1 - val2)

print(result)  # 输出:[-1]

简洁版(列表推导式)

如果喜欢更简洁的写法,Python的列表推导式可以一行搞定,逻辑和上面完全一致:

list_1 = [[4,9,2],[3,5,7],[8,1,5]]
list_2 = [[4,9,2],[3,5,7],[8,1,6]]

result = [val1 - val2 for sub1, sub2 in zip(list_1, list_2) 
          for val1, val2 in zip(sub1, sub2) 
          if val1 != val2]

print(result)  # 输出:[-1]

测试第二个示例

把代码套用到你给的第二个例子里,结果完全符合预期:

list_1 = [[3, 6, 7], [4, 9, 9], [7, 6, 9]]
list_2 = [[6, 7, 2], [1, 5, 9], [8, 3, 4]]

result = [val1 - val2 for sub1, sub2 in zip(list_1, list_2) 
          for val1, val2 in zip(sub1, sub2) 
          if val1 != val2]

print(result)  # 输出:[-3, -1, 5, 3, 4, -1, 3, 5]

小提醒

这里默认两个嵌套列表的结构是完全一致的(行数相同,每行的元素数也相同)。如果遇到结构不一致的情况,你可以额外加判断来处理长度差异,但从你的示例来看,应该不需要考虑这种情况~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:21:20