我已经尝试了一段时间,但无法找到一种基于常用值加入2个列表或数组的简单方法。类似于SQL内部联接但具有数组/列表而不是dict或其他一些数据类型。例如
a = [1, 2, 3]
b = [2, 3, 4]
join(a, b)
打印
[2, 3]
看起来很简单但缺少python或numpy。
答案 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
中元素的顺序相同。