2015-10-15 105 views
0

如果我有与在(X,Y)的形式的元组两个以下列表:如何计算Python中两个嵌套列表之间的差异?

[(a,1),(b,2),(c,7),(d,1)] 
[(a,3),(b,2),(c,7),(d,8)] 

我要计数的相对于对应的“x”值的“y”值的差数。在上述情况下,答案是2

(一,)不匹配(一,)

(d,)没有按“T匹配(d,)

编辑:这不是一个重复,EL的位置意义重大。我想检查列表1中的元素1是否与列表2中的元素1相同,以此类推。

+1

这可能已经在这里找到答案:http://stackoverflow.com/questions/ 16138015/python-comparison-two-lists – keda

+1

[python查找两个列表之间的区别]可能的重复(http://stackoverflow.com/questions/22559627/python-find-difference-between-two-lists) – Leb

+0

这不是一个副本。我试图在这里做一些不同的事情 –

回答

2

可以使用sum函数中zip功能和发电机的表达:

count=sum(i!=j for i,j in zip(list1,list2)) 
0

另一种方法是

x = [("a", 1) ,("b", 2), ("c", 7), ("d", 1)] 
y = [("a", 3), ("b", 2), ("c", 7), ("d", 8)] 
count = len(set(x).intersection(y)) 
+0

这不考虑位置吗? (即x [1]!= y [1]),只是在x的某处与y有区别? – stian

相关问题