我已经阅读了一些有关比较两个列表并在python3中返回匹配项的问题和解答。他们总是应用set()解决问题。但是我的问题应该考虑元素的顺序,并返回第二个列表的不匹配项。例如:
a = [1,2,3,4,5]
b = [2,1,3,4,6]
Unmatch(a,b) = [2,1,6]
如何设计函数Unmatch()?我的基本想法是申请循环检查每对项目。有什么建议吗?
非常感谢!
答案 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
将在到达较短列表的末尾时停止。