在Python中加入两个列表:

时间:2016-05-30 20:33:43

标签: python arrays

我有两个阵列(A& B)。 我想计算数组A的用户百分比,它们包含在数组B中。 我已经尝试但我找不到解决方案。

3 个答案:

答案 0 :(得分:10)

100.0 * sum((x in B) for x in A) / len(A)

如果B很大,请使用效率集:

100.0 * len(set(B).intersection(A)) / len(A)

答案 1 :(得分:5)

最讽刺的方式就像上面评论的Rogalski一样。

我认为Python在集合中非常强大:https://docs.python.org/2/library/sets.html

你可以用两种方式建立一个交叉点

设置(A)& set(B)或set(A).intersection(set(B))

公式如上所述(刚刚更正)

100 * len(set(A) & set(B)) / len(set(A))

答案 2 :(得分:0)

你只需要创建一个集合,并将a中元素的时间加在b中的成员集合中:

st  = set(b)

perc = sum((ele in st for ele in a),0.0) / len(a) * 100

如果你真的有numpy数组:

import numpy as np

a, b = [1, 3], [1, 4,3]
perc = np.in1d(a, b).sum() / 100.0 / len(a)