+ -
当前位置:首页 → 问答吧 → python中数组比较问题

python中数组比较问题

时间:2011-12-23

来源:互联网

例如:a=[1,-1,1,1,1,-1,1]
  b=[-1,1,1,1,-1,-1,1]
不用双重循环,有没有什么简单的方法可以计算出这两个数组里元素不同的个数或者元素都为-1的个数?本例中sum(a[i]!=b[i])= 3 sum(a[i]==b[i]==-1)=1

作者: lp106   发布时间: 2011-12-23

发完贴自己看下能不能看懂。

作者: iambic   发布时间: 2011-12-23

为什么看不懂呢?还是说你根本就没怎么看~~
a[0]!=b[0],a[1]!=b[1],a[3]!=b[3],所以sum(a[i]!=b[i])= 3
a[5]=b[5]=-1,所以sum(a[i]==b[i]==-1)=1

这很难理解吗

作者: lp106   发布时间: 2011-12-23

可以这样试试

Python code

>>> a=[1,-1,1,1,1,-1,1]
>>> b=[-1,1,1,1,-1,-1,1]
>>> c=zip(a,b)
>>> c
[(1, -1), (-1, 1), (1, 1), (1, 1), (1, -1), (-1, -1), (1, 1)]
>>> [x for x in c if x[0]!=x[1]]
[(1, -1), (-1, 1), (1, -1)]
>>> len([x for x in c if x[0]!=x[1]])
3
>>> [x for x in c if x[0]==x[1]==-1]
[(-1, -1)]
>>> len([x for x in c if x[0]==x[1]==-1])
1
>>> 


作者: askandstudy   发布时间: 2011-12-23