检查2个列表之间的部分匹配

时间:2015-11-26 11:49:31

标签: python list

我想检查两个列表之间是否有类似的元素。

例如:

ListA = ['A', 'B', 'C', 'D']
ListB = ['X', 'A', 'Y', 'Z']

我尝试any(ListB) in ListA,但返回False

有可能做这样的事吗?我对这种语言完全不熟悉。

2 个答案:

答案 0 :(得分:3)

any需要一个可迭代的True和False值。

>>> ListA = ['A', 'B', 'C', 'D']
>>> ListB = ['X', 'A', 'Y', 'Z']
>>> any(i in ListB for i in ListA)
True

您正在测试anyListB的{​​{1}}值是否为ListA

<子> comments中提到的更好的方法是使用set s

>>> len(set(ListA) & set(ListB)) > 0
True

答案 1 :(得分:1)

使用集合代替列表:

>>> list_a = {'A', 'B', 'C', 'D'}
>>> list_b = {'X', 'A', 'Y', 'Z'}
>>> list_a.intersection(list_b)
{'A'}
相关问题