如何在Python中获取两个列表之间的相同匹配数?

时间:2019-10-22 03:42:20

标签: python

如何提取两个列表之间相同元素的数量?我搜索的大多数答案通常与使用set操作查找常见元素有关,但是我正在寻找类似的东西:

list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list2 = [1, 2, 3, 0, 0, 0, 0, 0]

元素123相同,因此我们返回3

我知道我可以简单地进行循环并增加一个计数器,但是我想知道是否有任何一种方法更简洁或更有效。预先感谢。

2 个答案:

答案 0 :(得分:1)

尝试一下:

print (sum(list1[i] == list2[i] for i in range(min(len(list1), len(list2)))))

示例

>>> list1 = [1, 2, 3, 4, 5, 6, 7, 8]
>>> list2 = [1, 2, 3, 0, 0, 0, 0, 0]
>>> print (sum(list1[i] == list2[i] for i in range(min(len(list1), len(list2)))))
3

答案 1 :(得分:1)

这对我有用:

>>> list1 = [1, 2, 3, 4, 5, 6, 7, 8]
>>> list2 = [1, 2, 3, 0, 0, 0, 0, 0]
>>> sum( 1 for a,b in zip(list1,list2) if a == b )
3

您可以使用sum()而不是len()来获得相同的结果。