如何提取两个列表之间相同元素的数量?我搜索的大多数答案通常与使用set操作查找常见元素有关,但是我正在寻找类似的东西:
list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list2 = [1, 2, 3, 0, 0, 0, 0, 0]
元素1
,2
和3
相同,因此我们返回3
。
我知道我可以简单地进行循环并增加一个计数器,但是我想知道是否有任何一种方法更简洁或更有效。预先感谢。
答案 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()
来获得相同的结果。