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

Python中迭代比较列表并返回嵌套差异索引列表的问题

问题解决:按子列表分组返回差异元素的索引

你现在的问题是代码输出了扁平的索引列表,但需要按原嵌套列表的子列表分组展示差异索引对吧?其实问题出在你直接把所有差异索引都追加到同一个differences列表里了,没有按子列表做分组。

只需要做个小调整:每次遍历一个子列表的时候,先创建一个临时列表来存储这个子列表的差异索引,等这个子列表的所有元素对比完,再把临时列表加到最终的differences里就行。

修改后的代码如下:

differences = []
my_list = [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'd'], ['a', 'b', 'c', 'g'], ['d', 'e', 'f', 'd']]
main_list = ["a", "b", "f", "d"]

# 遍历每个子列表
for sub_list in my_list:
    # 为当前子列表创建临时存储差异索引的列表
    sub_diff = []
    # 对比当前子列表和基准列表的元素,注意索引从1开始
    for index, (item_main, item_sub) in enumerate(zip(main_list, sub_list), start=1):
        if item_main != item_sub:
            sub_diff.append(index)
    # 把当前子列表的差异索引列表加到最终结果里
    differences.append(sub_diff)

print(differences)

运行这段代码后,输出就是你期望的:[[3], [2], [3, 4], [1, 2]]

另外我把循环改成了直接遍历子列表(for sub_list in my_list),比用索引遍历更直观,当然你要是习惯原来的range(len(my_list))写法,也可以改成sub_list = my_list[i],效果是完全一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:07:26