一尘不染

如何比较python中的两个列表并返回匹配项

python

我想获取两个列表并查找两个列表中都出现的值。

a = [1, 2, 3, 4, 5]
b = [9, 8, 7, 6, 5]

returnMatches(a, b)

[5]例如,将返回。


阅读 454

收藏
2020-02-15

共2个答案

一尘不染

不是最有效的方法,但是到目前为止,最明显的方法是:

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a) & set(b)
{5}

如果订单很重要,你可以使用以下列表推导方法进行处理:

>>> [i for i, j in zip(a, b) if i == j]
[5]

(仅适用于大小相等的列表,这意味着顺序意义)

2020-02-15
一尘不染

使用set.intersection(),它快速且可读。

>>> set(a).intersection(b)
set([5])
2020-02-15