Skip to main content
 首页 » 编程设计

python之如何比较两个列表并返回它们在 python 中每个索引处匹配的次数

2025年05月04日25lexus

我有两个包含 1 和 0 的列表,例如

list1 = [1,1,0,1,0,1] 
list2 = [0,1,0,1,1,0] 

我想找到它们在每个索引处匹配的次数。所以在这种情况下,输出将为 3,因为它们仅在索引 1,2 和 3 处具有相同的值。

目前我正在这样做:

matches_list = [] 
for i in list1: 
   index = list[1].index(i) 
   if list1[index] == list2[index]: 
            mathes_list.append(i) 
   else: 
       pass 
return len(matches_list) 

但是这很慢,我想重复多次以比较大量这些列表

我希望有人可以建议我以更快的方式执行此操作。有没有办法使用 set() 函数或类似的东西,例如比较两个列表但保持每个列表的顺序?

请您参考如下方法:

zip 列表,比较元素,计算总和。

>>> list1 = [1,1,0,1,0,1] 
>>> list2 = [0,1,0,1,1,0] 
>>> sum(a == b for a,b in zip(list1, list2)) 
3 

(考虑在 Python 2 中使用 itertools.izip 以提高内存效率。)