关于python:匹配两个列表之间的逻辑

Match logic between two lists

本问题已经有最佳答案,请猛点这里访问。

我有两个列表,正在尝试查找列表中的任何元素。列表中有一个元素,我知道我可以用两个forloop来进行匹配。如果没有两个for循环,是否有更好的方法来实现这一点?

1
2
3
4
5
lista=['LA.BF.2.1']
listb=['LA.BF.2.1','LA.BF64.1.2.1','LA.BF64.1.1']
for element in lista:
    for element in listb:
                  match


如果您的目标是在lista中找到listb中也存在的元素,您可以将列表转换为set,然后执行set.intersection操作。

示例-

1
2
3
4
5
>>> lista=['LA.BF.2.1','SOMETHINGELSE']
>>> listb=['LA.BF.2.1','LA.BF64.1.2.1','LA.BF64.1.1']
>>>
>>> list(set(lista).intersection(listb))
['LA.BF.2.1']


可能使用any

1
2
3
4
>>> lista=['LA.BF.2.1']
>>> listb=['LA.BF.2.1','LA.BF64.1.2.1','LA.BF64.1.1']
>>> any([ i in listb for i in lista])
True