我有两个数组
QueryDefs
如果A中B的元素则打印出现次数 输出 1:1 5:3 7:3
答案 0 :(得分:2)
pythonic方式:
>>> import collections
>>> a= [1,2,3,4,6,5,5,5,8,9,7,7,7]
>>> b = [1,5,7]
>>> counter = collections.Counter(a)
>>> {x:counter[x] for x in b}
{1: 1, 5: 3, 7: 3}
>>>
答案 1 :(得分:1)
对于排序数组,您可以想出更好的算法,这些算法可以更快地运行,但是通常更简单,更本机的方式就是不使用库
for i in B:
ans = 0
for j in A:
if i == j:
ans += 1
print(i,':',ans)
答案 2 :(得分:0)
以上两个答案均有效。
我使用计数器是因为B具有A的所有元素
import collections
c = collections.Counter(A)
print(c)
答案 3 :(得分:0)
您标记了<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<h1>A Heading</h1>
<div>
<input id="nightmode" type="checkbox">
<label for="nightmode">Activate night mode</label>
</div>
<section>
<p>A section with a paragraph</p>
</section>
<section>
<p>A second section</p>
</section>
<footer>The footer</footer>
</body>
,所以这是一个简单的解决方案:
计算所有内容,然后仅返回与pandas
B
答案 4 :(得分:0)
numpy_indexed软件包针对此问题提供了矢量化解决方案(免责声明:我是其作者):
import numpy_indexed as npi
keys, counts = npi.count(A)
counts = counts[npi.indices(keys, B)]