【Python Tips】判断两个list是否存在相同元素——集合set的使用
目录
一、引言
二、列表相同元素集合判断算法
1.方法一:使用集合交集
2.方法二:使用集合和‘any()’函数
3.方法三:使用‘set.isdisjoint(other)’方法
一、引言
在处理列表元素时,有时需要比较两个列表元素内是否有相同的元素,使用循环查找是一种解决办法,但是对于较长的列表来说,使用集合判断是python 中一个更高效的算法。
二、列表相同元素集合判断算法
1.方法一:使用集合交集
集合数据结构在处理重复和查找操作时非常高效。可以将两个列表转换为集合,然后检查它们的交集是否为空。
list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 转换为集合并求交集
common_elements = set(list1) & set(list2)if common_elements:print("两个列表有相同元素:", common_elements)
else:print("两个列表没有相同元素")
2.方法二:使用集合和‘any()’函数
使用集合查找的特性,遍历一个列表,检查其中的元素是否在另一个列表的集合中。
list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 检查是否有相同元素
if any(item in set(list2) for item in list1):print("两个列表有相同元素")
else:print("两个列表没有相同元素")
3.方法三:使用‘set.isdisjoint(other)’方法
set.isdisjoint(other) 方法可以用来检查两个集合是否没有公共元素。如果没有公共元素,则返回 True,否则返回 False。
list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 使用 isdisjoint 方法
if not set(list1).isdisjoint(list2):print("两个列表有相同元素")
else:print("两个列表没有相同元素")