找出两个数组中相同位置的1的数量
我有两个列表:
A = [0,0,0,1,0,1]
B = [0,0,1,1,1,1]
我想找出这两个列表中在同一个位置上有多少个1。
对于这两个数组,答案是2。
6 个回答
1
我不是Python方面的专家,但从第一个数组的开始到结束用一个简单的循环有什么问题呢?
在C#中,我会这样做:
int match=0;
for (int cnt=0; cnt< A.Count;cnt++)
{
if ((A[cnt]==B[cnt]==1)) match++;
}
在你们的语言中,这样做可以吗?
1
出于一种想要挑战常规的心态,我提供了以下解决方案:
A = [0,0,0,1,0,1]
B = [0,0,1,1,1,1]
print len(set(i for i, n in enumerate(A) if n == 1) &
set(i for i, n in enumerate(B) if n == 1))
(Drakosha的建议是解决这个问题更合理的方法。这只是展示了我们可以用不同的角度来看待同一个问题。)
19
这里有一种更简洁、希望更符合Python风格的方法:
>>> A=[0,0,0,1,0,1]
>>> B=[0,0,1,1,1,1]
x = sum(1 for a,b in zip(A,B) if (a==b==1))
>>> x
2