Python中如何判断一个数组是否包含另一个数组的任意元素
现有示例数组如下:
a = [1, 2, 3] b = [4, 5, 1]
方法1:集合交集法(推荐,效率最高)
将两个列表转为集合后求交集,判断交集是否非空即可,适合列表元素均为可哈希类型(数字、字符串、普通元组等)的场景,时间复杂度为O(len(a)+len(b)),性能远高于遍历方案。
实现代码:
# 仅判断是否存在共同元素 has_common = bool(set(a) & set(b)) print(has_common) # 输出True,说明存在共同元素 # 若需要获取所有共同元素 common_elements = list(set(a) & set(b)) print(common_elements) # 输出[1]
方法2:遍历判断法
如果列表包含不可哈希元素(比如嵌套列表)无法转集合,可使用any()遍历判断,仅适合数据量较小的场景:
has_common = any(item in b for item in a) print(has_common) # 输出True
如果需要统计共同元素的出现频次,可使用collections.Counter实现,以上为「判断是否存在共同元素」需求的最简实现。
内容的提问来源于stack exchange,提问作者masroore
相关产品推荐
相关产品推荐

