python - 检查两个列表中是否有任何共同元素: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 个列表中的公共元素吗?
解决方案
您可以使用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
推荐阅读
- javascript - “文件”类型的参数不能分配给“字符串”类型的参数
- angular - Angular6 等待 app.component 中的 ngOnInit 完成,然后在子触发器中等待 ngOnInit
- c# - 为什么不将复选框列设置为 Ultragrid?
- r - R中的Lo和MacKinlay方差比检验
- c# - Blazor 链接 - 如果有 onclick 方法,则禁用 href
- unity3d - 是否可以在 HDRP 中设置 VR?
- android - 如何避免从 firebase 实时数据库下载相同的数据?
- java - 有没有办法检查 mongoDB 连接的正确性?
- c# - 如何将按钮从子窗体动态添加到主窗体
- sql - 如果 col b 的值匹配,则用 col a 的值填充 col a 的 NULL