如何在Python3中列出两个嵌套列表之间的差异?

如何在Python3中列出两个嵌套列表之间的差异?,python,python-3.x,list,Python,Python 3.x,List,我有两个这样的嵌套列表: list_1 = [[5, 3, 4], [1, 5, 8], [6, 4, 2]] list_2 = [[8, 3, 4], [1, 5, 9], [6, 7, 2]] [5,8,8,9,4,7] 我想将两个嵌套列表中的不同值列成如下列表: list_1 = [[5, 3, 4], [1, 5, 8], [6, 4, 2]] list_2 = [[8, 3, 4], [1, 5, 9], [6, 7, 2]] [5,8,8,9,4,7] 在Python3中有什

我有两个这样的嵌套列表:

list_1 = [[5, 3, 4], [1, 5, 8], [6, 4, 2]]
list_2 = [[8, 3, 4], [1, 5, 9], [6, 7, 2]]
[5,8,8,9,4,7]
我想将两个嵌套列表中的不同值列成如下列表:

list_1 = [[5, 3, 4], [1, 5, 8], [6, 4, 2]]
list_2 = [[8, 3, 4], [1, 5, 9], [6, 7, 2]]
[5,8,8,9,4,7]
在Python3中有什么方法可以做到这一点吗

这就是我所尝试的:

list_1 = [[5, 3, 4], [1, 5, 8], [6, 4, 2]]
list_2 = [[8, 3, 4], [1, 5, 9], [6, 7, 2]]
storer = []
for x in list_2:
    if x not in list_1:
       storer.append(x)
print(storer)
但它的回报是:

[[8, 3, 4], [1, 5, 9], [6, 7, 2]]
其中打印:

[5,8,8,9,4,7]

稍后回答,但您可以使用
set(list_1[i])^set(list_2[i])
,即:

final = []
for i in range(len(list_1)):
    [final.append(x) for x in reversed([y for y in set(list_1[i]) ^ set(list_2[i])])]
# [5, 8, 9, 8, 7, 4]

使用
设置的另一种方法
差异:

final = sum((list(set(k) - set(v)) + list(set(v) - set(k)) for k, v in zip(list_1, list_2)), [])
# [5, 8, 8, 9, 4, 7]
使用
reduce
得到相同的结果:

from functools import reduce

final = reduce(list.__iadd__, (list(set(k) - set(v)) + list(set(v) - set(k)) for k, v in zip(list_1, list_2)))
# [5, 8, 8, 9, 4, 7]
该功能可以为您完成90%的工作。