首页 > 解决方案 > 检查两个列表中是否有任何共同元素:Python

问题描述

所以我正在研究这个简单的程序来检查两个列表中是否有公共元素,所以我编写的代码使用嵌套 if 但想知道有没有更好的方法来做到这一点而不是使用嵌套格式。

def common_data(list1, list2):
     result = False
     for x in list1:
         for y in list2:
             if x == y:
                 result = True
                 return result

还有一种方法可以检查 n 个列表中的公共元素吗?

标签: pythonpython-3.x

解决方案


您可以使用any来遍历一个列表并检查另一个列表中的包含情况。这具有在找到第一个包含的元素时短路的好处。

>>> a = [1,2,3,4]
>>> b = [4,5,6,7]
>>> any(i in b for i in a)
True

或者,您可以检查set.intersection两个列表之间的a 大小

>>> a = [1,2,3,4]
>>> b = [4,5,6,7]
>>> len(set(a).intersection(b)) > 0
True

推荐阅读