python - 基于公共值连接2个数组/列表的简单方法

时间:2015-02-05 08:36:17

标签: python arrays numpy

我已经尝试了一段时间,但无法找到一种基于常用值加入2个列表或数组的简单方法。类似于SQL内部联接但具有数组/列表而不是dict或其他一些数据类型。例如

a = [1, 2, 3]
b = [2, 3, 4]
join(a, b)

打印

[2, 3]

看起来很简单但缺少python或numpy。

2 个答案:

答案 0 :(得分:17)

可能是重复的,但如果不是:

>>> a = [1,2,3]
>>> b = [2,3,4]
>>> list(set(a) & set(b))
[2, 3]

对于大型列表(外部数据),请参阅this S.O. answer

答案 1 :(得分:5)

如果您需要保持列表的顺序与a中的顺序相同:

a = [1, 2, 3]
b = [2, 3, 4]
c = [x for x in a if x in b]

如果订单不重要,请使用Ray答案,这应该更快,但不能保证列表顺序与a中元素的顺序相同。