如何在python 3.6中比较两个有序列表?

时间:2018-12-11 20:19:33

标签: python-3.x

我已经阅读了一些有关比较两个列表并在python3中返回匹配项的问题和解答。他们总是应用set()解决问题。但是我的问题应该考虑元素的顺序,并返回第二个列表的不匹配项。例如:

a = [1,2,3,4,5]

b = [2,1,3,4,6]

Unmatch(a,b) = [2,1,6]

如何设计函数Unmatch()?我的基本想法是申请循环检查每对项目。有什么建议吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

只需使用zip和列表理解:

>>> l1= [1, 2, 3, 4, 5]                       
>>> l2 = [2, 1, 3, 4, 6]                       
>>> [l2_element for l1_element, l2_element in zip(l1, l2) if l1_element != l2_element]
[2, 1, 6]        

如果2个列表的长度不同,zip将在到达较短列表的末尾时停止。