将列表与迭代中的其他列表进行比较,并在Python中的嵌套列表中返回差异

将列表与迭代中的其他列表进行比较,并在Python中的嵌套列表中返回差异,python,Python,我有这样一份清单: my_list = [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'd'], ['a', 'b', 'c', 'g'], ['d', 'e', 'f', 'd']] differences = [] my_list = [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'd'], ['a', 'b', 'c', 'g'], ['d', 'e', 'f', 'd']] main_list = ["a&quo

我有这样一份清单:

my_list = [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'd'], ['a', 'b', 'c', 'g'], ['d', 'e', 'f', 'd']]
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 i in range(len(my_list)):
    for index, (first, second) in enumerate(zip(my_list[i], main_list), start=1):
        if first != second:
            differences.append(index)
print(differences)
我想将其项目与另一个列表进行比较:

main_list = ["a", "b", "f", "d"]
我想返回它们不同的索引。到目前为止,我的代码如下所示:

my_list = [['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'd'], ['a', 'b', 'c', 'g'], ['d', 'e', 'f', 'd']]
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 i in range(len(my_list)):
    for index, (first, second) in enumerate(zip(my_list[i], main_list), start=1):
        if first != second:
            differences.append(index)
print(differences)
通过以上代码,我得到以下输出:

[3, 2, 3, 4, 1, 2]
这正是主列表与原始列表不同的索引。但是,我希望将此列表作为一个输出,它将为我提供一个嵌套列表,其中每个索引都是索引。主列表与我的_列表[0]不同,然后与我的_列表[1]不同,依此类推:

[[3], [2], [3, 4], [1, 2]]
如果您能帮助我修改代码以获得理想的输出,我将不胜感激。 谢谢

印刷品:

[[3], [2], [3, 4], [1, 2]]

或一个班轮:

out = [[i for i, (a, b) in enumerate(zip(subl, main_list), 1) if a != b] for subl in my_list]
print(out)

只需在
i
循环的开始处创建一个新的空列表,附加到该列表而不是
differences
,然后将该列表附加到
i
循环末尾的
differences
。这是最好的选择。绝对同意这个答案,OP