Python - 检查两个列表是否有任何共同元素

pythonserver side programmingprogramming

在使用 Python 列表处理数据时,我们遇到一种情况,需要知道两个列表是否完全不同或者它们是否有任何共同元素。这可以通过使用下面描述的方法比较两个列表中的元素来发现。

使用 In

在 for 循环中,我们使用 in 子句来检查元素是否存在于列表中。我们将扩展此逻辑以比较列表的元素,方法是从第一个列表中选择一个元素并检查其在第二个列表中的存在。所以我们将使用嵌套的 for 循环来执行此检查。

示例

#Declaring lists
list1=['a',4,'%','d','e']
list2=[3,'f',6,'d','e',3]
list3=[12,3,12,15,14,15,17]
list4=[12,42,41,12,41,12]

# In[23]:

#定义函数检查两个列表中的公共元素
def commonelems(x,y):
   common=0
   for value in x:
      if value in y:
         common=1
   if(not common):
      return ("列表没有公共元素")
   else:
   return ("列表有公共元素")

# In[24]:

#检查两个列表是否有共同元素
print("比较 list1 和 list2:")
print(commonelems(list1,list2))
print("\n")
print("比较 list1 和 list3:")
print(commonelems(list1,list3))
print("\n")
print("比较 list3 和 list4:")
print(commonelems(list3,list4))

运行上述代码得到以下结果

输出

比较 list1 和 list2:
列表有共同元素
比较 list1 和 list3:
列表没有共同元素
比较 list3 和 list4:
列表有共同元素

使用集合

另一种查找两个列表是否具有共同元素的方法是使用集合。集合具有无序的唯一元素集合。因此,我们将列表转换为集合,然后通过组合给定的集合创建一个新集合。如果它们有一些共同元素,则新集合将不为空。

示例

list1=['a',4,'%','d','e']
list2=[3,'f',6,'d','e',3]

# 定义函数二通过转换为集合来检查两个列表中的共同元素
def commonelem_set(z, x):
   one = set(z)
   two = set(x)
   if (one & two):
      return ("两个列表中都有共同元素:", one & two)
   else:
   return ("没有共同元素")

# 检查两个列表中的共同元素
z = commonelem_set(list1, list2)
print(z)

def commonelem_any(a, b):
out = any(check in a for check in b)

# 检查条件
   if out:
      return ("列表有共同元素。")
   else:
   return ("列表没有共同元素。")

print(commonelem_any(list1, list2))

运行上述代码得到以下结果

输出

('两个列表中都有共同元素:',{'d','e'})
列表有共同元素。

相关文章