Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中获得两个列表之间的相同匹配数?_Python - Fatal编程技术网

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

如何在Python中获得两个列表之间的相同匹配数?,python,Python,如何提取两个列表中相同元素的数量?我搜索的大多数答案通常与使用集合运算查找公共元素有关,但我正在寻找类似的答案: list1 = [1, 2, 3, 4, 5, 6, 7, 8] list2 = [1, 2, 3, 0, 0, 0, 0, 0] 元素1、2和3是相同的,因此我们返回3 我知道我可以简单地做一个循环并增加一个计数器,但我想知道是否有任何方法更简洁或有效。提前感谢。试试这个: print (sum(list1[i] == list2[i] for i in range(min(le

如何提取两个列表中相同元素的数量?我搜索的大多数答案通常与使用集合运算查找公共元素有关,但我正在寻找类似的答案:

list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list2 = [1, 2, 3, 0, 0, 0, 0, 0]
元素
1
2
3
是相同的,因此我们返回
3

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

试试这个:

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
试试这个:

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
这对我很有用:

>>> 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
您可以使用
len()
,而不是
sum()
——相同的结果。

这对我很有用:

>>> 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

您可以使用
len()
,而不是
sum()
——相同的结果。

重复上的已接受答案使用集合交叉,但还有其他答案不使用。当您说“相同”时,您的意思是除了具有相同的值外,它们还处于相同的位置吗?@smac89抱歉。我实际上是指位置。重复上的已接受答案使用集合交叉点,但还有其他答案不使用。当你说“相同”时,你的意思是除了具有相同的值外,它们还处于相同的位置吗?@smac89道歉。实际上,我的意思是position-wise.OP只是要求值相同,而不一定是它们的值position@smac89是的,我指的是具有相同元素的位置。抱歉造成混淆。OP要求的只是值相同,而不一定是它们的值position@smac89是的,我指的是具有相同元素的位置。很抱歉给你带来了困惑。