我想检查两个列表之间是否有类似的元素。
例如:
ListA = ['A', 'B', 'C', 'D']
ListB = ['X', 'A', 'Y', 'Z']
我尝试any(ListB) in ListA
,但返回False
有可能做这样的事吗?我对这种语言完全不熟悉。
答案 0 :(得分:3)
any
需要一个可迭代的True和False值。
>>> ListA = ['A', 'B', 'C', 'D']
>>> ListB = ['X', 'A', 'Y', 'Z']
>>> any(i in ListB for i in ListA)
True
您正在测试any
中ListB
的{{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'}